Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WDR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
Pyku_He_oTTyda
Насколько стабильно устройство, которое в качестве борьбы с зависанием использует WDR, кнопку резет невозможно предусмотреть. Супервизор установлен. Микропроцессор Tiny15. Питание устройства аккумуляторное, не будет отключатся годами, только подзарядка.
Заранее спасибо!
Igor26
Цитата(Pyku_He_oTTyda @ Aug 19 2005, 09:10)
Насколько стабильно устройство, которое в качестве борьбы с зависанием использует WDR, кнопку резет невозможно предусмотреть. Супервизор установлен. Микропроцессор Tiny15. Питание устройства аккумуляторное, не будет отключатся годами, только подзарядка.
Заранее спасибо!
*


Весьма стабильно. Главное не пихать команду сброса WDT во все участки программы, которые выполняются однозначно быстрее, чем установленное время срабатывания WDT, иначе бывали весьма неприятные варианты. Лично я его (WDT) сбрасываю только в тех фрагментах, где время ожидания события бывает достаточно долгим. Кстати, ATMEL утверждает, что в их ранних партиях AVRов WDT работал криво, а теперь всё с этой проблемой у них тип-топ.
Pyku_He_oTTyda
Спасибо, успокоилиsmile.gif Сброс от него у меня разрешен только в момент ожидания прерывания компаратора, после отработки прерывания жду сброса от WDR и перехожу к ожиданию внешнего прерывания.
А как узнать, какой партии контроллер?
Igor26
Цитата(Pyku_He_oTTyda @ Aug 19 2005, 12:11)
Спасибо, успокоилиsmile.gif Сброс от него у меня разрешен только в момент ожидания прерывания компаратора, после отработки прерывания жду сброса от WDR и перехожу к ожиданию внешнего прерывания.
А как узнать, какой партии контроллер?
*

Не знаю. Думаю сейчас кривых процессоров уже не купить :-)
arttab
может уже и не криво песик работает, но как насчет на 13 танике сделать? Мы с 15 давно воюем. В основном с калибровкой оссилятора
Pyku_He_oTTyda
А в чем еще проблемы 15 ого, дело в том, что устройство потом заливается компаундом и в случае проблем не хочется получать много рецензий от заказчика. В чем преимущество 13?
arttab
Цитата(Pyku_He_oTTyda @ Aug 22 2005, 12:13)
А в чем еще проблемы 15 ого, дело в том, что устройство потом заливается компаундом и в случае проблем не хочется получать много рецензий от заказчика. В чем преимущество 13?
*


нестабильность оссилятора от напряжения (сильная зависимость), долго просыпается (иногда), и невозможность откалибровать оссилятор на некоторых экземлярах.
А 13 почти полный аналог кроме вывода ареф. но он по новым технологиям сделан и в него внесли улучнения. смотри даташиты
AlexP.
Цитата(arttab @ Aug 22 2005, 04:44)
может уже и не криво песик работает, но как насчет на 13 танике сделать? Мы с 15 давно воюем. В основном с калибровкой оссилятора
*


А можно подробнее о войне с 15-м. Планирую его применить, но живьем в руках не держал. Буду очень признателен за любую инфо.
Pyku_He_oTTyda
Подумаю, наверное его поставлю, он побыстрее, да и поэкономичнее. Спасибо за совет!
IgorKossak
Возвращаясь к теме WDT, напомню, что ни в коем случае не следует его сбрасывать в теле обработчика прерывания по таймеру (за исключением тех случаев, когда в обработчике анализируются флаги прохождения некоторых участков кода).
Pyku_He_oTTyda
Cпасибо! Учту.
over
Цитата(IgorKossak @ Aug 25 2005, 10:54)
Возвращаясь к теме WDT, напомню, что ни в коем случае не следует его сбрасывать в теле обработчика прерывания по таймеру (за исключением тех случаев, когда в обработчике анализируются флаги прохождения некоторых участков кода).
*

А можно узнать причину нежелательности использования команды WDR в обработчике прерывания по таймеру. У меня программа (световые эффекты)состоит только из этого таймера, в котором все основные действия и совершаются. Устройство включается-выключается кнопкой подключённой к PB0. Нерабочее время и в выключенном состоянии - сидит в sleep.
andk
Вообще (мое мнение) работа с WDT должна строится по такому принципу:
Выделяем байт(слово) - регистр для сброса WDT.
В каждой обязательной для прохождения подпрограмме устанавливается один (соответствующий подпрограмме) бит в регистре.
В одном месте программы (все равно где, хоть в прерывании таймера) анализируется заполнение регистра. Если все биты установлены, очищаем регистр и передергиваем WDT. В противном случае даем WDT сработать,
после сброса по отсутствию установленного бита догадываемся где висели.
IgorKossak видимо эту методику имел ввиду.

To over:
Сброс WDT в прерывании без выше описаной методики может пропустить зависание программы в основном цикле. Т.Е. Прерывания будут работать, а основной цикл - висеть.
arttab
А если сбрасывать в основном цикле? Это ведь проще.
andk
Да сбрасывать можно где угодно, важен критерий сброса
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.