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

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

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

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

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

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


 
Опции темы
Непрочитано 09.09.2012, 18:43  
mike124
Прохожий
 
Регистрация: 21.08.2006
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
mike124 на пути к лучшему
По умолчанию Сторожевой таймер в ATtiny25/45/85

На форуме задавался похожий вопрос 3 года назад, но ответ дан не был.

Проблема в следующем. Используется сторожевой таймер - чистый RESET. Пока програма занята и периодически его сбрасывает, не давая переполниться - все ОК.

Но вот проц засыпает. Срабатывает WDT. Пока все нормально. Проц честно спал все 8 секунд.

После сброса, т.к. нет работы, проц снова засыпает и тут же бац - сторожевой таймер срабатывает. В диагностике пишется, что период установлен 8 секунд, но таймер обнуляется сразу же. И так до бесконечности: инициализация WDT на максимальный период 8 секунд, засыпание и тут же, RESET по WDT, игнорируя период.

Однако, есть одна особенность. Если в процессе этой беды вдруг произойдет какое-нибудь другое прерывание, то после засыпания сторожевой таймер честно ждет 8 секунд, но опять же - 1 раз.

Подскажите, как с этим бороться и заставить WDT работать как надо?

Для примера привожу проект. Обратите внимание, что в обработчике прерывания вообще ничего писать не обязательно. Просто нужна внешняя активность на выводах микроконтроллера.
Вложения:
Тип файла: rar WatchDog.rar (49.4 Кб, 78 просмотров)
Реклама:
mike124 вне форума  
Сказали "Спасибо" mike124
warel (29.06.2019)
Непрочитано 09.09.2012, 19:19  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Перед инициализацией wdt обнуляй регистр mcusr и сам таймер (команда wdr)
niXto вне форума  
Сказали "Спасибо" niXto
warel (29.06.2019)
Непрочитано 09.09.2012, 22:28  
mike124
Прохожий
 
Регистрация: 21.08.2006
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
mike124 на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Да я так и делал. Поставил вообще инициализацию сразу после MCUSR = 0x00; - ничего не меняется.
mike124 вне форума  
Сказали "Спасибо" mike124
warel (29.06.2019)
Непрочитано 10.09.2012, 10:05  
Алекс Василич
Прописка
 
Аватар для Алекс Василич
 
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
Алекс Василич на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Блин, у тебя там вообще все выводы в воздухе висят и непонятно к чему соединяются.
У еонтроллера же есть несколько векторов прерываний. Вот и ошибся в адресах. Хоть бы проследил за переходами то.
Миниатюры:
Нажмите на изображение для увеличения
Название: 2218558.gif
Просмотров: 104
Размер:	61.9 Кб
ID:	38503  

Последний раз редактировалось Алекс Василич; 10.09.2012 в 12:17.
Алекс Василич вне форума  
Сказали "Спасибо" Алекс Василич
warel (29.06.2019)
Непрочитано 10.09.2012, 21:43  
mike124
Прохожий
 
Регистрация: 21.08.2006
Сообщений: 3
Сказал спасибо: 0
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
mike124 на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Сообщение от Алекс Василич Посмотреть сообщение
Вот и ошибся в адресах
Вы исходник смотрели? В каких адресах я ошибся? В первом варианте я вообще запретил все прерывания, кроме WDT. Во второй схеме, что выложил - это так, для проформы объявлено.
mike124 вне форума  
Сказали "Спасибо" mike124
warel (29.06.2019)
Непрочитано 15.10.2012, 16:19  
Lomolom
Частый гость
 
Регистрация: 06.12.2006
Сообщений: 16
Сказал спасибо: 17
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Lomolom на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

mike124,
Внимательно почитай AN про WDT, и сам даташит - У этого таймера весьма хитрая логика со сложными перекрестными связями.

Так что надо работать со всеми битами-флагами, которые завязаны на WDT.

Вот: AVR132: Using the Enhanced Watchdog Timer on tinyAVR and megaAVR devices
__________________
Микрокод Am2900... O tempora, o codes...
Lomolom вне форума  
Сказали "Спасибо" Lomolom
warel (29.06.2019)
Непрочитано 15.10.2012, 19:39  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Курим ДШ.
Миниатюры:
Нажмите на изображение для увеличения
Название: Image1.jpg
Просмотров: 96
Размер:	56.7 Кб
ID:	39565  
omercury вне форума  
Сказали "Спасибо" omercury
warel (29.06.2019)
Непрочитано 15.10.2012, 22:10  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Сообщение от omercury Посмотреть сообщение
Курим ДШ.
См. 2-й и 3-й посты
niXto вне форума  
Сказали "Спасибо" niXto
warel (29.06.2019)
Непрочитано 15.10.2012, 22:58  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

Сообщение от niXto Посмотреть сообщение
См. 2-й и 3-й посты
То бишь курить даташит уже вроде как бы не обязательно?
Компилим и проверяем.
Вложения:
Тип файла: zip w1.zip (1.2 Кб, 44 просмотров)
omercury вне форума  
Сказали "Спасибо" omercury
warel (29.06.2019)
Непрочитано 16.10.2012, 15:22  
Lomolom
Частый гость
 
Регистрация: 06.12.2006
Сообщений: 16
Сказал спасибо: 17
Сказали Спасибо 4 раз(а) в 4 сообщении(ях)
Lomolom на пути к лучшему
По умолчанию Re: Сторожевой таймер в ATtiny25/45/85

omercury

Человек спрашивает про обработку WDT уже в работающей программе. У ВДТ есть несколько тонкостей при обработке всего "оставляемого им г..."
В даташите и в.у. АН все подробно описано - нужно обрабатывать несколько бит, причем в определенном порядке.

Есть проект, в котором ВДТ работает обычным таймером - так вот пришлось попрыгать, чтобы его правильно работать научить.
__________________
Микрокод Am2900... O tempora, o codes...
Lomolom вне форума  
Сказали "Спасибо" Lomolom
warel (29.06.2019)
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Чем эмулировать ATTiny25-45-85 kolobokus Микроконтроллеры, АЦП, память и т.д 3 06.04.2010 22:47
USI в ATTiny25 kassiopay Микроконтроллеры, АЦП, память и т.д 1 05.10.2009 12:05
Сторожевой таймер. Проведите ЛИКБЕЗ. radarr Микроконтроллеры, АЦП, память и т.д 9 22.01.2008 21:50
Таймер Serq Автоматика и аппаратура связи 18 27.11.2007 18:32
ATtiny25 как запустить PWM от внутреннего умножителя частоты dima777 Микроконтроллеры, АЦП, память и т.д 7 25.11.2007 22:56


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


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