Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 20 maja 2026, o 11:03


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 
Autor Wiadomość
PostNapisane: 7 gru 2015, o 21:17 
Offline
Nowy

Dołączył(a): 07 gru 2015
Posty: 13
Pomógł: 0

Cześć,
Jestem totalnie początkującym i obecnie czytam niebieską książkę p.Kardasia ;) . Jednak dział związany z przerwaniami zmusił mnie do zarejestrowania i zadania pytania na tym forum.

Założenie mojego programu było proste, miał on zaświecać i gasić diodę, około 30 razy na sekundę.

Program:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Jednak jedynym efektem jest zwyczajne świecenie diody. Tutaj pojawia się moje pytanie, a spędziłem nad tym dość dużo czasu, co mogłem źle skonfigurować w timerze? Osobiście wydaje mi się że chodzi tutaj o:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Ponieważ w nocie aplikacyjnej dla atmega88 rejestr ten nazywa się OCRA, a nie tak jak wyżej zapisałem OCR0A, jednak gdy próbuję użyć 0CRA jest traktowane przez kompilator jako błąd.

Używam programu Eclipse Mars
Z góry dziękuję za każdą pomoc i proszę o wyrozumiałość...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 21:28 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

CS02 i CS00 są w rejestrze TCCR0B

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 21:32 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Witam
Po pierwsze zapis TIMSK0 = OCIE0A;
powinien być:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Karbos napisał(a):
zaświecać i gasić diodę, około 30 razy na sekundę

...ale to już bardziej zalatuje PWM'em niż mruganiem - zauważysz tylko przyciemnienie LED'a

Pozdr.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 21:49 
Offline
Nowy

Dołączył(a): 07 gru 2015
Posty: 13
Pomógł: 0

Masz rację kicajek, jednak ta dioda ma być tylko bodźcem który da mi znać, że dobrze skonfigurowanego timera.
Masz jeszcze pytanie odnośnie tego jak należy ustawić preskal dla TCCR0A, bo teraz sam widzę że użyłem złych bitów...

------------------------ [ Dodano po: 4 minutach ]

Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.


Udało mi się zrobić to za pomocą jak to ujmę "drugiego" timera :D. Jednak wciąż zastanawiam się jak miałbym to zrobić na TCCR0A?



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 22:11 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

Karbos napisał(a):
Udało mi się zrobić to za pomocą jak to ujmę "drugiego" timera

:shock: Super użyłeś zarezerwowanego trybu. Ciekawe czy Atmel o tym wie, że to działa.
TCCR0A i TCCR0B musisz traktować całościowo, bo licznik timera jest jeden TCNT0, a 2 są rejestry z wartością do porównania A i B i są 2 przerwania A i B. Dlatego bity preskalera są tylko jedne.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 22:18 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 11 sty 2013
Posty: 1760
Pomógł: 196

Karbos napisał(a):
... jak należy ustawić preskal dla TCCR0A

To nie jest tak; tryb i preskaler wpisujemy do rejestrów które mamy podane w nocie kat.
W Twoim przypadku tak WGMxx jak i CS'y są w TCCR0B i nic nie zmienisz.
Obrazek
Obrazek

Pozdr.

edit do uwagi kol.Krauser - oczywiście; niepotrzebnie wpisałem WGMxx, pisząc "w Twoim przypadku" miałem na myśli tylko WGM02.



Ostatnio edytowano 7 gru 2015, o 22:30 przez kicajek, łącznie edytowano 2 razy

Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 7 gru 2015, o 22:23 
Offline
Uzytkownik zasłużony dla forum.atnel.pl
Avatar użytkownika

Dołączył(a): 16 lip 2012
Posty: 2088
Lokalizacja: Leżajsk / Kraków
Pomógł: 411

kicajek napisał(a):
W Twoim przypadku tak WGMxx jak i CS'y są w TCCR0B i nic nie zmienisz.

WGM01 i WGM00 są w TCCR0A, a WGM02 jest w TCCR0B.

_________________
Dragonus Cracovus: Biomagia



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 7 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 0 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO