Включен ли watchdog?

Привет всем.

Есть Arduino Nano с залитой залоченной прошивкой. Интересно, есть способ узнать включен ли на ней watchdog? Как её попробовать подвесить?

кварц замкни (тока я этого не советовал :joy:)

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

а если конденсатором?

Катушкой! Катушкой нужно замыкать!!! Желательно катушкой Мишина! ))))

3 лайка

“Леночка! Яица подействовали!!!” (c)

2 лайка

загрузчика там нет

это предположение или утверждение?
если второе, как оно выяснялось при залоченой флеш контролера?

1 лайк

А другого способа нет?
На нано такой крохотный кварц, что его хрен замкнёшь.

загрузчика там точно, я вижу и точно знаю.

тогда гвоздем две ножки на самом МК куда кварц подключен, они там рядом.

а как бы мне посмотреть, ну хоть одним глазком?

Попробовал я этот метод. И, похоже, он нерабочий. Замыкал ноги XTAL1 и XTAL2, куда подключен внешний кварц.

Взял тестовый скетч, с включены вачдогом, проверил на delay() – перезагружается по delay, как настроено.

Замкнул ноги камня XTAL1 и XTAL2 – ардуино просто виснет и не перегружается. После размыкания не отвисает. Помогает только ресет. В принципе, дуня виснет, стоит лишь коснуться XTAL2.

Выключил вачдог, проверил на таймере, снова замкнул – тот же эффект. Что включен вачдог, что выключен, замыкание внешнего кварца ни о чём мне сказать не может.

Ну, конечно, можно. :slight_smile:
Лок прошивки не блокирует же возможность залития скетча через usb.
К тому же это мой камень, и если я лочу, то заливаю всегда без загрузчика. У меня вопрос только один - не забыл ли я включить вач-дог, что приводит к такому странному зависанию раз в неделю, чего быть не должно априори.


Ну, если в прошивке есть watch-dog, то, наверное же, на дуню позаботились залить нормальный загрузчик, сбрасывающего watch-dog; либо удалили бы его вовсе, взяв этот вопрос на свой контроль. Ибо зачем было бы вообще включать watch-dog, коли это делало бы из arduino висяк при первом же глюке.

Так тактирование у мк пропадает, что он песни петь должен ? ))

вопрос был как проверить включен ли вачдога. Если эффект данного метода одинаковый - что включен, что выключен, значит что-то тут не так.
Может метод нерабочий, может я делаю что-то неверно. Вопрос - что.

Сэмулируй в любом месте программы зависание while(1); и смотри через сколько секунд будет перегружаться.

Смотря как вачдог организован. Некоторые в таймерное прерывание вставляют.(

Это ж нана? 328? У неё отдельный генератор и даже после перезагрузки отследить можно что вачдог сработал.

Я к тому что, если wdt_reset() будет в прерывании, то while(1) не поможет. Нужен cli() перед этим.)

Это да. Но как же надо озаботится, что б wdt_reset() в прерывание воткнуть?