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