Спящий режим и внешние прерывания

КанДеЛябр
Offline
Зарегистрирован: 28.03.2014

Сможет ли ардуино находясь в режиме сверхмалого потребления (спящий режим)  просыпаться и корректно обрабатывать два внешних прерывания, а по завершении обработки уходить обратно в спящий режим ?

 

 

 

 

 

КанДеЛябр
Offline
Зарегистрирован: 28.03.2014

пожалуйста помогите с примером кода

axill
Offline
Зарегистрирован: 05.09.2011

Int и Pcint прерывания будут работать с любым режимом низкого потребления

КанДеЛябр
Offline
Зарегистрирован: 28.03.2014

axill пишет:
Int и Pcint прерывания будут работать с любым режимом низкого потребления

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

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

КанДеЛябр, поиск по форуму пробовали? Вот здесь есть рабочий пример.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

http://habrahabr.ru/post/189744/ - сходите сначала сюда: там есть и образец кода для проверки Вашей ардуины на совместимость со спящим режимом...

КанДеЛябр
Offline
Зарегистрирован: 28.03.2014

Andrey_Y_Ostanovsky пишет:
http://habrahabr.ru/post/189744/ - сходите сначала сюда: там есть и образец кода для проверки Вашей ардуины на совместимость со спящим режимом...

 

1. Какой из спящих режимов рекомендуете?

2. В спящем актуален watchdog () ?

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

Я что-то упустил?
Какая зависимость watchdog от спящего режима или наоборот?

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

CityCat пишет:
Я что-то упустил? Какая зависимость watchdog от спящего режима или наоборот?

Это я тут у себя встал на грабли: у меня плату из спящего режима должен был watchdog выводить... Получил "crazy_led" со всеми вытекающими... Хорошо, там в скетче было много времени до срабатывания - удалось перепрошить. Ну а, вообще говоря, watchdog нужен для любой автоматической системы, а не только спящей.

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

Andrey_Y_Ostanovsky пишет:

CityCat пишет:
Я что-то упустил? Какая зависимость watchdog от спящего режима или наоборот?

Это я тут у себя встал на грабли: у меня плату из спящего режима должен был watchdog выводить... Получил "crazy_led" со всеми вытекающими... Хорошо, там в скетче было много времени до срабатывания - удалось перепрошить. Ну а, вообще говоря, watchdog нужен для любой автоматической системы, а не только спящей.

Да нет же - я спрашивал как связаны рекомендации по изучению вачдога к вопросу ТС о спящем режиме? Или вы не видите разницы между watchdog и sleep mode? ИМХО - не похоже. Вроде как видите.

P.S. Для любой системы ИМХО вачдог не нужен (разве что в процессе отладки) - система должна работать нормально без "костылей" типа вачдогов. Если происходит сбрасывание по вачдогу - что-то не так или программно или аппаратно - и это не есть стабильная работа системы.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Имеется ввиду ,что ватчдог используется для просыпания микроконтроллера . Ватчдог может использоватся не только для увеличения стабильности работы м/к

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

MaksMS пишет:

Имеется ввиду ,что ватчдог используется для просыпания микроконтроллера . Ватчдог может использоватся не только для увеличения стабильности работы м/к

Хм... Объясните смысл "тушить" МК на (и это максимум) 8 секунд? ИМХО - если уж тушить, то до прерывания какого-нибудь или переполнения таймера. Ну не на 8 же секунд.

Хотя, наверное, каждому свое.

MaksMS
Offline
Зарегистрирован: 11.03.2013

Почему это на 8 секунд ? никто не мешает сделать счетчик и например включать какое либо действие на 5х8 секунд.. При холостом включении ватчдога энергии жрать не будет практически , там время включения будет чуть ли на микросекунды..

Успешно так и работают все такие устройства ,например я реализовывал данный алгоритм на беспроводном датчике влажности/температуры на attiny..

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Уж если идти совсем до конца,  я бы  просто  убрал BOOTRST и не пользовался загрузчиком.

USBASP прекрасно шьёт программу. И в любой момент можно снова вернуться к загрузчику через компорт.

Вы же не затираете его, а просто выключаете. ( если , конечно, не иправить upload.maximum_size в  boards.txt)

 

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Andrey_Y_Ostanovsky пишет:

P.S. Для любой системы ИМХО вачдог не нужен (разве что в процессе отладки) - система должна работать нормально без "костылей" типа вачдогов. Если происходит сбрасывание по вачдогу - что-то не так или программно или аппаратно - и это не есть стабильная работа системы.

Как раз и нужен, обязательно нужен!

А без вачдога у вас как раз и будет " не есть стабильная работа системы".

Дома котёл JUNKERS,  иногда  вижу как перезагружается. Спасибо вачдогу что не висит!

 

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

trembo пишет:

Andrey_Y_Ostanovsky пишет:

P.S. Для любой системы ИМХО вачдог не нужен (разве что в процессе отладки) - система должна работать нормально без "костылей" типа вачдогов. Если происходит сбрасывание по вачдогу - что-то не так или программно или аппаратно - и это не есть стабильная работа системы.

Как раз и нужен, обязательно нужен!

А без вачдога у вас как раз и будет " не есть стабильная работа системы".

Дома котёл JUNKERS,  иногда  вижу как перезагружается. Спасибо вачдогу что не висит!

Ну раз перезагружается, значит есть тому причина, не так ли?

Нормально отлаженное работающее устройство не должно перезагружаться или висеть - с этим спорить по-моему бесполезно. А если перезагружается (или без того же вачдога подвисает) - что-то с ним значит не так. Делаем выводы, что именно с перезагрузками как раз и " не есть стабильная работа системы". Или "Спасибо вачдогу что не висит!" - это стабильная работа?

 

P.S. У самого на этапах отладки вачдоги всегда включены. Но лишь для мониторинга повисаний и определения условий этих повисаний. В данном контекте, говоря о неприменимости вачдогов, веду речь о законченном устройстве.

Andrey_Y_Ostanovsky
Offline
Зарегистрирован: 03.12.2012

CityCat пишет:

P.S. У самого на этапах отладки вачдоги всегда включены.

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

CityCat
CityCat аватар
Offline
Зарегистрирован: 13.06.2013

Andrey_Y_Ostanovsky пишет:

CityCat пишет:

P.S. У самого на этапах отладки вачдоги всегда включены.

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

Ну, в бой я не бросался. И не кричал. И в постах моих вроде нет ссылок на чью-то неправоту - с чего вам вдруг такое подумалось? Да и спорить ни с кем не желаю. Я всего лишь высказал свое мнение и спросил, как вачдог относится к вопросу:

КанДеЛябр пишет:

Сможет ли ардуино находясь в режиме сверхмалого потребления (спящий режим)  просыпаться и корректно обрабатывать два внешних прерывания, а по завершении обработки уходить обратно в спящий режим ?

Где там про вачдог? Там вроде как вопрос про прерывания в спячке. Вот и поинтересовался - может я чего-то не знаю - я б с удовольствием почерпнул бы новых знаний.

Но я, конечно же не спорю с тем, что

Andrey_Y_Ostanovsky пишет:

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

P.S. А по поводу "нерабочей" ардуины - тоже достаточно спорный вопрос - у меня почему-то получается прошить такие меги, вернув им работоспособность. Гугл в курсе, если что.

leshak
Offline
Зарегистрирован: 29.09.2011

CityCat пишет:

Andrey_Y_Ostanovsky пишет:

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

P.S. А по поводу "нерабочей" ардуины - тоже достаточно спорный вопрос - у меня почему-то получается прошить такие меги, вернув им работоспособность. Гугл в курсе, если что.

А если поискать по этому форуму, то можно найти рецепт лечения и без перепрошивки. Ничего кроме ArduinoIDE и манипуляйций с питанием/ресетом - не требуется.

А необходимость собаки в конечном устройстве - помоему тут и спорить нечего (особенно в критичных вещах типа котлов и т.п.).

С одной стороны - его сработка это сигнал "что-то тут не так". И с этим нужно разбиратся (по хорошему еще нужно логирование делать, что была нештатная перезагрузка). С другой стороны.... почему-то никто не стесняется ставить в конечное устройство предохранители. Более того это является "хорошим тоном". Хотя перегорание предохранителя - штатной ситуацией не назовешь. Так и вочдог. Предохранитель програмный.