Cześć,
Problem wygląda tak, że nie działa mi CTC na TIMERZE2. Nie sprawdzałem innych.
uC to ATMEGA644P
Podłączenie:Używam zestawu ATB rev 1.04
Podłączyłem diodę LED do nogi PD0. Katodą.
Kod:Kod:
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
int main(void)
{
DDRD |= (1<<PD0);
TCCR2A |= (1<<WGM21);
TCCR2B |= (1<<CS20) | (1<<CS21);
OCR2A = 255;
TIMSK2 |= (1<<OCIE2A);
while(1)
{
}
}
ISR(TIMER2_COMP_vect)
{
PORTD |= (1<<PD0);
}
Taki testowy kod napisałem. Wg moich założeń dioda po wejściu w przerwanie od TIMERA2 powinna zgasnąć. Niestety tak się nie dzieję. Rejestry konfigurowałem wg. noty.
Gdy wrzucam
Kod:
PORTD |= (1<<PD0);
do funkcji main() tuż przed while() dioda gaśnie.
Co robię źle?