Делаю обработчик прерывания по совпадению TCNT3 с OCR3A
Он в железке никак не вызывается - там должна быть работа с пинами, а ее нет - не видно на осцилографе. Если эту же процедуру работы с пинами вешать на прерывание timer0 - все проходит как надо.
В Avr Studio и Proteus все моделируется как надо.
Вот настройки таймера 3:
- Код: Выделить всё • Развернуть
TCCR3A = 0;
OCR3AH = 0x00;
OCR3AL = 0xFF;
TCCR3B = (1 << CS32) | (1 << CS30) | (1 << WGM32);
TCCR3C = 0;
TCNT3 = 0;
ETIMSK |= 1 << OCIE3A;
ETIFR = TIFR = 0;
Вот обработчик:
- Код: Выделить всё • Развернуть
#pragma vector=TIMER3_COMPA_vect
__interrupt void Timer3()
{
drawline(lx, ly, (const char*)vbuff1);
}