WatchDog и его последствия

В программе корректно работает WaatchDog.

void loop()
{
// ........
// ........
// ........
  if (start == true) wdt_reset(); // здесь я ему даю пожрать.
}

Для перезагрузки start можно сбрасывать “извне”.
А вопрос вот в чем.
Какое значение примут переменные, которые инициализированы до setup?

Ох, ты серьезно спрашиваешь такое? В теме о вачдоге?
А как ты сам думаешь? Или по твоему ватчдог делает не полную перезагрузку мк? Частичную. Типа «вот когда мне код не нравится, я тут часть перезапущу». Так чтоли?

Восстановил ваше стертое сообщение и прифигел

И как это связано с ватчдогом?
Без ватчдога переменные после старта инициировать не надо?

Опять какую-то чушь написали

видимо он спрашивает, после вачдога static переменные инициализируются заново нулем.

Благодаря этой чуши я набираюсь опыта, о котором не Вам судить. WanchDog (только что проверено) запускает setap. Поэтому некоторые переменные инициализировать надо. Либо предварительно сохранить их в EEPROM.

хрена себе.
кто это такой “setap”?

Пляяя … вот же идиот. Проверил он!

Тебе в первом же ответе написали - Ватчдог перезапускает контроллер. Точно так же как кнопка Ресет.
То что после рестарта запускается СЕТАП - неужели надо было проверять?

не “некоторые”, а ВСЕ!!!

void setup()

Наверно вы путаете ватчдог со сном. Это связанные темы, они часто обсуждаются вместе.

Если Ватчдог используется для выхода из сна - переменные сохраняются, после рестарта Ватчдогом нет.

Нет. Именно WatchDog.

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

Все переменные и все железо надо инициализировать заново.

Насчет железа понятно. Я так понимаю, что в первом приближении железо тоже можно считать за переменные, например:

SFE_BMP180 pressure;
DHT dht;

Но нужно ли инициализировать переменную, в которую записывается значение с какого-либо датчика?

много от чего зависит

  • архитектура
  • область видимости
  • тип перезагрузки
  • настройки оптимизации
  • etc…
    возьмите за правило - всегда и везде инициализировать ВСЕ переменные (если задача не требует иного).
    голова не болит, нет лишних вопросов.