Вот такая хреновина у меня работает уже месяц
Схема состоит из светодиода, резистора (220 Ом) и микроконтроллера Attiny2313. В камень зашит вот такой код
$regfile = Attiny2313.dat
$crystal = 1000000
‘$sim
‘конфигурируем таймер для генерации прерываний
‘прерывания от таймера будут происходить примерно раз в 4 секунды
Config Timer1 = Timer , Prescale = 64
On Timer1 Awake:
Config Portd.6 = Output
Led Alias Portd.6
Enable Interrupts
Enable Timer1
Start Timer1
Do
Led = 1
Waitms 100
Led = 0
Idle ‘погружаем в сон
Loop
Awake: ‘случилось прерывание по таймеру
Return
End
Этот код запускает таймер с переполнением каждые 4 секунды, а в главном цикле на 0,1 сек зажигается светодиод. После этого микроконтроллер погружается в сон командой Idle. По прошествии 4 секунд таймер переполняется и вызывает прерывание, которое пробуждает камень и перекидывает выполнение программы в начало главного цикла. Как итог, светодиод периодично мигает, а во время простоя работает режим энергосбережения.
Теперь самое интересное и ради чего все затевалось – как сильно разрядилась батарейка? Для питания я использовал старый аккумулятор от сотового емкостью 1530мА/ч. Но это то, что написано на нем, за 7 лет емкость там куда меньше. Напряжение на нем в начале эксперимента составляло 3,97 вольта. Промигав дни и ночи без остановок, адское устройство разрядило аккумулятор аж на 0,3 вольта!!! за 27 дней. По прикидкам на 0,01 вольта в сутки. Неплохо так, ящитаю.
Взято с: