[an error occurred while processing this directive]
[an error occurred while processing this directive]
|
Таймер 16-разрядный, так что от часового кварца без перезагрузки он может давать прерывание раз в 2 сек. Если прерывание приходит раз в 1 сек - значит, софт перегружает таймер. Вот тут-то и грабли.
При засыпании основной генератор выключается. По прерыванию от таймера он включается, и ему надо какое-то время для разгона. При 5В время разгона одно, при 3В - другое.
Вы, небось, эмпирически подобрали число для перезагрузки часового таймера при 5В. Это число "явно" учитывает время, необходимое для выполнения подпрограммы прерывания до момента перезагрузки таймера, и "неявно" (!!!) - время разгона основного кварца. 3В - это семечки. Вы при 5В погоняйте его в термокамере, тоже часики будут убегать :)
Самый разумный выход - не перегружать таймер, пущай себе считает. А прерывание - раз в 2 сек по переполнению. Иначе начнется геморрой с синхронным-асинхронным режимами таймера, и т.п.
E-mail: info@telesys.ru