Это не глюк, это просто грабля, на которую наступают почти все, кто добирается до работы таймера AVR микропроцессора в асинхронном режиме. Этот режим используется для реализации "спящих" часов реального времени, когда контроллер большую часть времени спит, а часы себе тикают и время и дату считают.
Асинхронный режим подразумевает подключение кварца к пинам TOSC1 и TOSC2. А теперь внимание, сладкие грабельки!
Прочитав даташит и написав код инициализации таймера в этом режиме все прекрасно работает. Почти работает. Но иногда при подаче питания таймер не стартует, прерывания не генерируются. В некоторых случаях таймер не стартует вообще, не запускаясь и с 100-ой попытки. Вообщем возникает ощущение, что какой-то плохой кварц, контроллер, корпус контроллера, флюс или что-то в этом духе (где-то здесь на Казусе была ветка об этом, но найти не могу).
А решается все просто. Нужно дождаться завершения инициализации таймера перед разрешением прерываний.
Оригинал: