Делаю проект часы на меге. Пока работал с помощью VMLAB и Протеус все было ок , часы тикали и т.д. Как только стал шить в железо оказалось, что не тикают(то есть не входят в прерывание). Проверил в АВР студии - действительно не входят. Вот код:
//Инициализация таймера 2 на 1сек. void timer2_init(void) { TCCR2 = 0x00; ASSR = 0x08; TCNT2 = 0x80; OCR2 = 0x80; TCCR2 = 0x06; } //Обработка прерывания по таймеру 2 #pragma interrupt_handler timer2_ovf_isr:5 void timer2_ovf_isr(void) { rtc_service(); //Функция обработки времени TCNT2 = 0x80; } .......... void init_devices(void) { //stop errant interrupts until set up CLI(); //disable all interrupts port_init(); timer0_init(); timer2_init(); MCUCR = 0x00; GICR = 0x00; TIMSK = 0x41; //timer interrupt sources SEI(); //re-enable interrupts } .....................
void main(void) { init_devices(); LCD4_Init(); LCD4_Clear(); ........... while(1); }
Может подскажете в чем ошибка.
|