Гляньте не замыленным взглядом правильно ли я инициализацию выполняю.
Писано в IAR AVR 5.3
Код: Выделить всё
void rtc_init(void)
{
//Отключаем прерывания Таймера 2.
TIMSK &= ~((1<<TOIE2) | (1<<OCIE2));
//Переводим таймер 2 в асинхронный режим, такт от часового кварца
ASSR |= (1<<AS2);
TCNT2 = 0x00;
TCCR2 = 0x05; //прескаллер 128.
OCR2 = 0x00;
// Ждем готовности таймера
while (ASSR & (1<<TCN2UB) | (1<<OCR2UB) | (1<<TCR2UB));
// Разрешаем прерывания от Таймера 2.
TIMSK |= (1<<TOIE2);
// Разрешаем прерывания глобально.
__enable_interrupt();
}