Страница 1 из 1
[M168] Глюк с прерыванием в спящем режиме
Добавлено: Сб июл 23, 2011 23:26:25
watchmaker
Мега 168. Большую часть времени спит, просыпается по переполнению таймера 2 от кварца (32768). И по этому же прерыванию делает один раз процедуру, потом снова в спящий.
На 4 МГц всё нормально, на 8 процедура через раз выполняется ДВАЖДЫ за одно пробуждение. С чем это связано?
Зы. Временно решил проблему так: в процедуру вставил задержку порядка 5 мкс.
Re: [M168] Глюк с прерыванием в спящем режиме
Добавлено: Вс июл 24, 2011 16:19:44
watchmaker
Вопрос ко всем, у кого есть часы-термометр на М8 по схеме из статьи. Попробуйте пережечь фьюзы на 8 МГц - не начнут ли часы идти в СПЯЩЕМ режиме (от батареек) раза в полтора быстрее? Попробовал портировать их на М168 и поставил 8 МГц - вот такой глюк. Выставляю делитель частоты на два - работает идеально. Ставлю вовнутрь ISR(SIG_OVERFLOW2) процедуру delay(10) - всё начинает работать стабильно и на 8 МГц.
Re: [M168] Глюк с прерыванием в спящем режиме
Добавлено: Вс июл 24, 2011 16:40:59
O-LED
походу при 8 мгц обработчик выполняется быстрее чем один тик Т2. поставьте в конце обработчика
while (TCNT2==0) {};
как это решить более красиво - не знаю. может по другому и ни как.
у меня несколько часов на 8 и 16меге, работают на 8мгц такта, никогда подобного не замечал. вероятно у вас очень маленький обработчик.