Проверьте, находится ли плата в спящем режиме

Я использую спящий режим просачивания с UNO с простым скетчем, который включает светодиод, а затем переходит в спящий режим. что касается части таблицы данных ATmega328p в спящем режиме, показывающей источники пробуждения и деактивированные источники тактовых импульсов в режиме глубокого сна, а часы ввода-вывода становятся деактивированными, поэтому мы ожидаем, что когда плата переходит в спящий режим, светодиод должен погаснуть из-за отсутствия часов. но этого не происходит и светодиод продолжает гореть в спящем режиме. в чем проблема?7 и как вообще узнать, находится плата в спящем режиме или нет?

, 👍0

Обсуждение

Почему вы думаете, что выход будет выключен при засыпании? Насколько я понимаю, значение пина не может меняться во сне, так как защелка не имеет тактового сигнала. Но это не значит, что выход выключен., @chrisl

используйте светодиод для индикации спящего режима ... выключите светодиод при пробуждении, @jsotola


2 ответа


Лучший ответ:

2

IO не требует, чтобы часы сохраняли свое текущее состояние. Требуется только изменить состояние.

Микросхема не передает реальный внешний сигнал, указывающий, находится ли она в спящем режиме или нет. Однако вы можете следить за током, потребляемым чипом, и когда он падает ниже определенного порога, можно предположить, что он находится в спящем режиме.

,

0

Вы можете легко установить НИЗКИЙ уровень выходного сигнала светодиода непосредственно перед вызовом функции going_to_sleep() и установить ВЫСОКИЙ уровень при возврате функции функции going_to_sleep(). Будет два коротких периода, когда светодиодный сигнал укажет на спящий режим, но процессор работает:

  1. между переходом светодиода в НИЗКИЙ уровень и фактическим переходом процессора в спящий режим; и
  2. между пробуждением процессора и горением индикатора ВЫСОКИМ.

Но в это время процессор все равно не мог ответить на вашу внешнюю систему.

,