Witam,
mam pytanie odnośnie timera w atmega8. Zdefiniowałem w programie dla Timer2 tryb pracy CTC i bez preskalera (TCCR2 = _BV(WGM21) | _BV(CS20)) oraz generowanie przerwania przy zliczeniu do 4 (OCR2 = 4). Nie dokonywałem żadnych zmian przy zegarze wewnętrznym z którego korzystam, zatem z tego co wiem ma on częstotliwość domyślną 1MHz. Przerwanie polega na zmianie stanu portu na przeciwny.
Działając w ten sposób, wg mnie teoretycznie, powinienem uzyskać na wyjściu sygnał prostokątny o częstotliwości 125 kHz (częstość zmian to 250 kHz, okres sygnału prostokątnego jest dwa razy dłuższy). Jednak sprawdzając oscyloskopem uzyskuję sygnał 6,5 kHz.
Gdzie popełniłem błąd?
Pozdrawiam
mam pytanie odnośnie timera w atmega8. Zdefiniowałem w programie dla Timer2 tryb pracy CTC i bez preskalera (TCCR2 = _BV(WGM21) | _BV(CS20)) oraz generowanie przerwania przy zliczeniu do 4 (OCR2 = 4). Nie dokonywałem żadnych zmian przy zegarze wewnętrznym z którego korzystam, zatem z tego co wiem ma on częstotliwość domyślną 1MHz. Przerwanie polega na zmianie stanu portu na przeciwny.
Działając w ten sposób, wg mnie teoretycznie, powinienem uzyskać na wyjściu sygnał prostokątny o częstotliwości 125 kHz (częstość zmian to 250 kHz, okres sygnału prostokątnego jest dwa razy dłuższy). Jednak sprawdzając oscyloskopem uzyskuję sygnał 6,5 kHz.
Gdzie popełniłem błąd?
Pozdrawiam