Делаю проект часы на меге. Пока работал с помощью 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);
}
Может подскажете в чем ошибка.