В основном я хочу определить, было ли полностью отключено питание в маломощном устройстве, которое я делаю, в котором используется чип Atmega328.
Теория заключается в том, что при первом подаче питания ATmega включится, откалибрует и возьмет некоторые показания, а затем снова отключится. Остальная часть схемы по-прежнему будет получать питание до тех пор, пока микросхема снова не проснется и не начнет считывать данные. Мне нужно определить, была ли батарея отключена или нет. Если это так, мне нужно снова сделать калибровку; если это не так, то я просто воспринимаю показания как обычно.
Есть ли способ сделать это, который потребляет как можно меньше энергии?
Питание системы отключается, а затем снова подается, ATmega запускается с вектора сброса, как обычно (из-за сброса при включении).
Таким образом, вы можете выполнять процедуры инициализации в самой первой части вашей main()
функции.
По окончании периодических измерений не отключайте питание ATmega. Вместо этого по инструкции переведите его в режим пониженного энергопотребления или энергосбережения sleep
.
Это потянет меньше, чем
при 25°С. Когда происходит прерывание пробуждения (например, истечение времени таймера, внешний вывод и т. д.), прерывание будет выполнено, и программа перезапустится с инструкции, которая следует за ним sleep
. Таким образом, вы можете избежать любого внешнего оборудования.
Транзистор
Крис Стрэттон
тусклый
Ник Алексеев
Скорость вращения