В текущей программе реализован элементарный счетчик секунд на базе таймера2 и часы на его основе. Хотелось бы добиться уменьшения потребления и сделать так, чтобы в sleep mode микроконтроллер просыпался 1 раз в 8 сек (или реже?), а при нажатии пользователем на клавишу просыпался и автоматически корректировал счет времени и показывал его пользователю в формате HH:MM:SS. При этом пользователь не должен заметить самого переключения (по индикации секунд). Сходу мне удалось только при wake up ждать пока наступит переполнение от таймера, прибавлять 8 сек и только потом переключаться в режим 1 раз в сек используя OC2A. Ясно, что пользователь максимум в течение 8 сек видит что ЧАСЫ ОСТАНОВИЛИСЬ ))). Это плохо. Учитывая, что индикация времени задача типовая может кто-нибудь поделится идеями? Интересно, почему прескалер таймера2 имеет такой "небольшой" предделитель? Ведь при тактировании от 32.768kHz можно пробуждать контроллер не реже 1 раза в 8 сек. Стоит ли заморачиваться, если потребуется раз в минуту? И вообще заметно ли увеличится при этом жизнь батареи? Количественно оценить не смог...
|