WatchDog Timer

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

не срабатывает watchdog при симуляции в протеусе

Сообщение andrewproffi (Андрей) » 26 июл 2016, 17:42

Здравствуйте!
Возникла необходимость проверить работу ватчдога в проекте сенсорная кнопка на attiny13, и обнаружилась проблема, при проверке в протеусе его срабатывания не происходит... при проверке в железе все работает нормально. Хотя при составлении программы, я не помню каким образом делал задержку, но ватчдог срабатывал в протеусе.
Подскажите в чем может быть проблема :hlp:
ps: проверял работу ватчдога путем вставки пустого цикла перед основным циклом.
дублирую файлы проекта, если кому нужно, его описание в "готовые решения и примеры"
У вас нет доступа для просмотра вложений в этом сообщении.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе

Re: не срабатывает watchdog при симуляции в протеусе

Сообщение pav13 (pav13) » 26 июл 2016, 19:06

andrewproffi писал(а):Здравствуйте!
Возникла необходимость проверить работу ватчдога в проекте сенсорная кнопка на attiny13, и обнаружилась проблема, при проверке в протеусе его срабатывания не происходит... при проверке в железе все работает нормально. Хотя при составлении программы, я не помню каким образом делал задержку, но ватчдог срабатывал в протеусе.

выставил в debug - attiny13 - watch dog timer - full trace. всё сбрасывает. скрин приложил. это оно или я не понял вопроса?
У вас нет доступа для просмотра вложений в этом сообщении.
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7 / VS Code
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Ученик
Ученик
Информация о пользователе

Re: WatchDog Timer

Сообщение andrewproffi (Андрей) » 26 июл 2016, 19:08

это нормальный режим работы программы. а мне надо заставить собаку сработать в протеусе.
для этого я перед основным циклом СТАВИЛ ПУСТОЙ БЕСКОНЕЧНЫЙ ЦИКЛ. В протеусе сброса не произошло.
Аватар пользователя
Ник: andrewproffi
Имя: Андрей
(Томск)
Гуру
Гуру
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение pav13 (pav13) » 26 июл 2016, 21:27

andrewproffi писал(а):это нормальный режим работы программы. а мне надо заставить собаку сработать в протеусе.
для этого я перед основным циклом СТАВИЛ ПУСТОЙ БЕСКОНЕЧНЫЙ ЦИКЛ. В протеусе сброса не произошло.

по ходу дела это какой-то косяк протеуса 8. если выполнилась хоть одна команда обнуления WDT, тогда сброса МК в бесконечном цикле не произойдёт, а если установить бесконечный цикл перед первой командой обнуления WDT , тогда МК перезагружается раз в секунду.

пробовал свои проекты (которые были созданы в седьмом протеусе):
в протеус 7.1(нормально работает WDT, но не работает вывод отладки), в 8.4 (не работает перезагрузка от WDT, но работает вывод отладки).
Изображение
FC AVR 5.5.2.1 + исправления / Proteus 8.8 / AtmelStudio 7 / VS Code
drive.google.com/open?id=1zOOA1dH952RegF1N4-jipYkr13iuToSY
Аватар пользователя
Ник: pav13
Имя: pav13
(Тёмовск)
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение livrena (livrena) » 01 янв 2017, 14:34

--- Watchdog_clear pic12f675
пример срабатывания WDT
У вас нет доступа для просмотра вложений в этом сообщении.
Ник: livrena
Имя: livrena
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение livrena (livrena) » 30 янв 2020, 21:07

Заметил интересную особенность на Atmega 328P.
Активировал WDT на 4 секунды и в настройках проекта установил самоочищать watchdog, в теле программы сброса WDT вообще нигде нет.
С такими настройками всё работает и программа занимает 9086 bytes.

Без установки (самоочищать WDT) размер программы увеличился до 10152 bytes и естественно произошёл reset через 4 сек.
Ник: livrena
Имя: livrena
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение WiseOwl (WiseOwl) » 31 янв 2020, 07:25

livrena писал(а):в настройках проекта установил самоочищать watchdog, в теле программы сброса WDT вообще нигде нет

Вот здесь описан механизм работы Auto Clear Watchdog и указано где вставлена команда Clear WDT.
Замена пауз Delay на паузы Wdt_Delay в AVR_CAL_Delay.c...
И как мне думается, если в программе не будет Пауз, то Auto Clear Watchdog работать не будет, - не будут вставлены команды Clear WDT (MX_CLEAR_WATCHDOG;), которые прописаны в Wdt_Delay... в частности в подпрограмме static void Wdt_Delay_Ms(char delay)..
livrena писал(а):Без установки (самоочищать WDT) размер программы увеличился

Непонятно, все должно было быть наоборот...
Аватар пользователя
Ник: WiseOwl
Имя: WiseOwl
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение livrena (livrena) » 31 янв 2020, 07:38

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

Минимальная задержка при которой работает самоочиститель WDT
1ms.
Если нет в программе ЗАДЕРЖКИ и установлен самоочиститель произойдёт сброс по WDT.
Последний раз редактировалось livrena 31 янв 2020, 21:07, всего редактировалось 1 раз.
Ник: livrena
Имя: livrena
Ученик
Ученик
Информация о пользователе
Вернуться наверх

Re: WatchDog Timer

Сообщение WiseOwl (WiseOwl) » 31 янв 2020, 08:45

livrena писал(а):так как есть. Вечером гляну какой размер получится на другом проекте.
Можешь не торопиться... :D Я уже глянул... так и есть, все это спрятано в AVR_CAL_Delay.c, именно там по разному описаны паузы. Процедуры Wdt_Delay_X в которых вставлено MX_CLEAR_WATCHDOG отличаются от Delay_X ну и так далее... Выявлять что и как не вижу смысла, - паузы зло... их не нужно применять, работать с WDT нужно непосредственно...
При желании можешь изменить написание пауз и проверить, - я проверил, и мне все стало понятно...

PS Конечно от пауз которые вставлены в программные драйвера и протоколы обмена с периферией никуда не деться (например, для LCD), но там они короткие...
Аватар пользователя
Ник: WiseOwl
Имя: WiseOwl
Заинтересованный
Заинтересованный
Информация о пользователе
Вернуться наверх

Пред.

Вернуться в ПЕСОЧНИЦА

Кто сейчас на форуме

Пользователь просматривает форум: ferro