Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: WDT где сбрасывать?
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > MSP430
vasta
Доброго дня.
Доселе никогда не работал с ватчдогом на мсп, всегда усыплял в начале кода.
Но тут дошло дело до серийной партии и встал вопрос - может оно надо.
Боюсь, что реализую и как нибудь не так (ввиду отсутствия навыкоыв работы), то бишь благими намерениями вымощу себе ад)
Код простейший, инициализация, усыпление ядра в лпм3, и далее по прерываниям таймера измерение и дергание ногами в зависимости от результатов измерения. Нужен ли в такив вещах ватчдог. и если нужен то в каком месте его сбрасывать
Камень f2132, в будущем планируется переход на g2231
jorikdima
Сбрасывать периодически, период меньше интервала переполнения вочдога. Сбрасывать там, куда гарантированно придешь с периодом опять же меньше интервала переполнения вочдога. А где конкретно, ну кто ж его знает вашу программу sm.gif
kriv-73
Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека.
zltigo
QUOTE (kriv-73 @ Feb 6 2011, 17:15) *
Сбрасывать можно только в main(), потому что прерывания продолжают вызываться и после разрушения стека.

Отлично sm.gif, а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться.

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

Без операционки - в том-же main() хоть какой-то контроль за псевдопроцессами и только в случае их работоспособности сброс WD.

kriv-73
Цитата(zltigo @ Feb 6 2011, 17:49) *
Отлично sm.gif, а как вариант - прерывание накрылось медным тазом, а main() тупо крутиться.

Обычно в main() ничего срочного не исполняется - в этом цикле повторяется инициализация периферии и настройка прерываний.

Цитата(zltigo @ Feb 6 2011, 17:49) *
В случае наличия операционной системы варианты сброса WD следует начинать рассматривать с варианта соэдания самой низкоприоритетной задачи в которой осуществляется контроль работоспособности и основных задач и обработчиков прерываний.

Человек же писал - код простой.
Dog Pawlowa
Цитата(kriv-73 @ Feb 6 2011, 20:18) *
... в этом цикле повторяется инициализация периферии и настройка прерываний.

сколько же их можно настраивать? wink.gif

Цитата(kriv-73 @ Feb 6 2011, 20:18) *
Человек же писал - код простой.

Но прерывания то есть, раз их настраиваем постоянно?

Обычно в простых программах есть базовое прерывание таймера, в которое включаются фоновые сервисы периферии.
Вот оно и должно обязательно контролироваться. Если прерывание происходит, то сброс WDT в основном цикле.
zltigo
QUOTE (kriv-73 @ Feb 6 2011, 19:18) *
в этом цикле повторяется инициализация периферии и настройка прерываний.

Жутчайшая муть sad.gif sad.gif sad.gif - стучать по голове РАБОТАЮЩЕЙ периферии.
firstvald
Вообще накрывается все и работающая переферия и таймеры и main. Если удастся связать работу таймеров и main одним признаком и по нему глушить собаку- то будет хорошо.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.