roboforum.ru

Технический форум по робототехнике.

atmega128: прерывание от timer3 не выполняется

atmega128: прерывание от timer3 не выполняется

matracc » 03 июл 2007, 15:38

Пишу IAR.
Делаю обработчик прерывания по совпадению 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);

}

avr123.nm.ru » 03 июл 2007, 22:35

Может у вас фьюз на совместимость с мега103 настроен ?  Проверьте.   avr123.nm.ru/07.htm

matracc » 04 июл 2007, 10:42

черт
так и было
мне стыдно
правда

avr123.nm.ru » 04 июл 2007, 12:27

Ни чего стыдного. Обычные "грабли".


Rambler\'s Top100 Mail.ru counter