Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 25.06.2003, 19:27  
junior
Гость
 
Сообщений: n/a
По умолчанию Правильно ли я активизирую собаку для авр?

WDTCR=0x0f;
....
...
...
_WDR();


Реклама:
 
Непрочитано 25.06.2003, 23:08  
Andrey
Временная регистрация
 
Регистрация: 22.05.2003
Сообщений: 55
Сказал спасибо: 0
Сказали Спасибо 18 раз(а) в 18 сообщении(ях)
Andrey на пути к лучшему
По умолчанию

http://www.fulcrum.ru/cgi-bin/bbs/start.pl -спроси
Andrey вне форума  
Сказали "Спасибо" Andrey
warel (24.06.2019)
Непрочитано 31.03.2008, 02:09  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию

Я делаю это так:

void WDOG_Init()
{
WDTCR = (1 ‹‹ WDP1);
#asm("WDR");
WDTCR |= (1 ‹‹ WDE);
}

И потом в каком-то прерывании которое выполняется постоянно или в основном цикле пишу:

#asm("WDR");

естественно в начале проги в разделе инициализаций нужно прописать
WDOG_Init();

Установка битов WDTCR влияет на время реакции собаки на зависание. См. Datasheet.
alex28411 вне форума  
Сказали "Спасибо" alex28411
warel (24.06.2019)
Непрочитано 31.03.2008, 08:20  
urry1
Временная регистрация
 
Регистрация: 11.12.2007
Сообщений: 79
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
urry1 на пути к лучшему
По умолчанию

сбрасывать собаку в прерывании - это моветон, оно может не наступить. Вот обсуждение в тему
http://www.microchip.su/showthread.p...&highlight=wdt
urry1 вне форума  
Сказали "Спасибо" urry1
warel (24.06.2019)
Непрочитано 31.03.2008, 13:00  
Don_Ambrosio
Вид на жительство
 
Регистрация: 28.02.2008
Сообщений: 437
Сказал спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении(ях)
Don_Ambrosio на пути к лучшему
По умолчанию Re: Правильно ли я активизирую собаку для авр?

Сообщение от junior
WDTCR=0x0f;
....
...
...
_WDR();


Дык прошей прогу в твой девайс и убедись правильно или нет. Или в симуляторе прогони
__________________
Дон Амброзио благодарит алфавит за любезно предоставленные буквы
Блин!! Морковь в 2,5 раза подорожала!!!
Don_Ambrosio вне форума  
Сказали "Спасибо" Don_Ambrosio
warel (24.06.2019)
Непрочитано 02.04.2008, 02:53  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию

Если у меня прерывание по переполнению таймера управляет динамической индикацией, то поверьте, что это прерывание вызывается 200 раз в с. И оно наступает всегда. Иначе на сесисегментный индикатор ничего не будет выводиться. А если вы не используете прерывание, то бросать кость собаке можно и в основном бесконечном цикле, как я уже говорил. Смотря по какому алгоритму вы строите свою прогу.
alex28411 вне форума  
Сказали "Спасибо" alex28411
warel (24.06.2019)
Непрочитано 02.04.2008, 02:55  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию

А при таком алгоритме:


WDTCR=0x0f;
....
...
...
_WDR();


собака вообще никогда не проснется. Читайте Datasheet!
alex28411 вне форума  
Сказали "Спасибо" alex28411
warel (24.06.2019)
Непрочитано 02.04.2008, 12:39  
mike7815
Прописка
 
Регистрация: 16.03.2005
Сообщений: 244
Сказал спасибо: 78
Сказали Спасибо 85 раз(а) в 55 сообщении(ях)
mike7815 на пути к лучшему
По умолчанию

to Junior, если _WDR(), тоже, что и #asm("WDR") то упринципе пойдёть. Маленькое замечание. Собака нужна для защиты от сбоев это как говориться прописная истина. Но давайте посмотрим что убивает нормальную работу контроллера: 1.-остановка тактового генератора.
2.- запись в регист счетчика команд "неверного" адреса. 3.- сбой стековой памяти.и т.д. и т.п. список можно продолжать и продолжать. кстати ни кто не запрещает таймеру собаки остановиться от помехи. Короче говоря, чем дольше работаю с АВР тем больше убеждаюсь- сделана эта часть контроллера через это как его ну вы поняли. И вобще помехозащищенность у АВР никуда, хотя сам контроллер имет очень много преимуществ главные из которых цена и доступность. Теперь маленький простенький совет по использованию собаки: если вы сбрасываете собаку при выполнении прерывания считайте, что в 90% случаев при возникновении сбоя работы программы контроллер будет работать работать работать аки батарейки энейджайзер. Для того чтобы исключить такого рода ситуацию я делаю следующее: объявляю глобальную пременную, которую использую отдельно для флагов "нормальной работы программы" которые устанавливаю в разных местах программы- прерывания там всякие вычисления прочие, короче говоря во всех местах где надо проверить правильную работу и затем в укромном месте проверяю именно эту переменную, ее обнуляю и сбрасываю сабаку. Вот так вот- мааленький советик.
P.S. огромная радость объяла меня, когда узнал, что новые меги могут выполнять прерывание при переполнении собаки а не тупо все сбрасывать
mike7815 вне форума  
Сказали "Спасибо" mike7815
warel (24.06.2019)
Непрочитано 03.04.2008, 14:19  
alex28411
Прописка
 
Аватар для alex28411
 
Регистрация: 14.01.2008
Сообщений: 121
Сказал спасибо: 1
Сказали Спасибо 19 раз(а) в 18 сообщении(ях)
alex28411 на пути к лучшему
По умолчанию

Цитата:
to Junior, если _WDR(), тоже, что и #asm("WDR") то упринципе пойдёть.
Эта команда только сбрасывает сторожевой таймер. Но его еще нужно правильно запустить. Привожу цитату из книги:

"Для запуска сторожевого таймеранеобходимо в ходе программы выполнить команду WDR и затем установить в единичное состояние разряд WDE регистра WDTCR.
Для остановки сторожевого таймера необходимо установить в единичное состояние разряд WDTOE регистра WDTCR и одновременно повторно установить в единичное состояние разряд WDE, затем не позднее, чем через четыре такта после этого сбросить в нулевое состояние разряд WDE. Разряд WDTOE сбрасывается в нулевое состояние аппаратно через четыре такта после установка его в единичное состояние.
Программа, в которой предусмотрено использование сторожевого таймера, должна периодически с интервалом меньшим, чем период формирования запроса прерывания WDT Reset, с использованием команды WDR перезапускать сторожевой таймер. Если при появлении сбоя команда WDR своевременно не выполняется, происходит перезапуск микроконтроллера."

---------------------
Читайте книжки, господа!
alex28411 вне форума  
Сказали "Спасибо" alex28411
warel (24.06.2019)
Непрочитано 03.04.2008, 16:11  
mike7815
Прописка
 
Регистрация: 16.03.2005
Сообщений: 244
Сказал спасибо: 78
Сказали Спасибо 85 раз(а) в 55 сообщении(ях)
mike7815 на пути к лучшему
По умолчанию

инициализация зависит от типа контроллера так, что книжку в печку
mike7815 вне форума  
Сказали "Спасибо" mike7815
warel (24.06.2019)
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сигнатура в АВР Tolstopuz Микроконтроллеры, АЦП, память и т.д 3 19.05.2009 22:20
Новый Баском АВР Kabron Микроконтроллеры, АЦП, память и т.д 42 15.02.2008 11:17
помогите с кодом для АВР. язык си. Curt_atmel-proger Микроконтроллеры, АЦП, память и т.д 13 23.08.2007 20:53
ключ для Микробейсик под АВР aleksandr-zh Proteus, KiCAD и другие ECAD 0 25.04.2007 21:48
массивы в АВР Limit Микроконтроллеры, АЦП, память и т.д 9 02.05.2006 13:55


Часовой пояс GMT +4, время: 01:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot