Po pierwsze to zastanawia mnie bardzo dlaczego postanowił Pan w procku
ATmega8 "zmarnować" na taki cel aż 16-bitowy timer sprzętowy (Timer1)
???? Szkoda bo 8-bitowy wystarczyłby w zupełności. No ale jeśli to
tylko dla testów to rozumiem
Generalnie zabiera Pan się za przesiadkę na inny procek i na inny
timer tymczasem, pierwsza linia w prezentowanym kodzie, nadesłanym
przez Pana to:
język cpp
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.
a zwracałem w książce uwagę, że prawidłowe komentarze w programie są
nie mniej ważne niż sam kod, a szczególnie gdy pracujemy w zespole.
Wprawdzie tu nie pracuje Pan w zespole - jednak .... podsyła Pan kod
komuś innemu do sprawdzenia (mowa tutaj o mnie) .... czyli poniekąd
tworzymy mini zespół. No i co ja widzę? komentarz, że jednak dokonuje
Pan ustawień dla Timer0 a nie Timer1.
hmmm to że chodziło Panu o Timer1 wywnioskowałem na szybko (ale być
może błędnie chociażby z nazwy wektora przerwania jakiego Pan użył)
Kod:
ISR(TIMER1_COMPA_vect)
Niestety w inicjalizacji jest już totalny "MISZ-MASZ" jeśli chodzi o
próbę dotarcia co Pan miał na myśli, bo:
wprawdzie ustawia Pan tryb CTC dla Timera1 (patrząc na nazwę bitu
WGM12) ale czy spojrzał Pan w jakim rejestrze Pan ten bit ustawia ????
dlaczego w
TCCR0 ???? przecież nawet nie zaglądając do noty PDF widać
że to rejestr konfiguracyjny Timer0 a nie Timer1
Zatem po takiej linijce to ja już do końca nie wiem czy chodziło Panu
o Timer0 czy Timer1.
Patrząc jednak na koleją linie - jeszcze bardziej się upewniam, że
może chodziło Panu o Timer0 gdyż preksaler bity
CS02 i
CS00 ustawia
Pan w rejerze TCCR0 znowu od Timera0 i to jeszcze nazwy bitów też
pochodzą z Timera0. Bo dla Timera1 miałyby one nazwy
CS12 i
CS10Widzi Pan różnicę ???
Jeśli nie to bardzo jednak proszę otworzyć sobie notę PDF procka
ATmega8 (ja właśnie to zrobiłem) i zajrzeć w jakich rejestrach są bity
konfiguracyjne dotyczące Timer1 i jakie tam są nazwy tych bitów.
Niestety bez noty daleko nie zajedziemy - musi ona być wciąż pod ręką
o czym wciąż piszę w książce
Co ciekawe w kolejnej linii już Pan sprawdził że rejestr porównania
dla Timera1 to
OCR1A a nie
OCR0 ;) więc tu chyba zajrzał Pan do noty
PDF ???
Dobrze to na razie tyle moich podpowiedzi
nie chcę od razu podawać
gotowego rozwiązania a jedynie naprowadzić Pana.
Jednak jeśli dalej się nie uda to proszę śmiało pisać podpowiem dalej
OK?