подскажите товарищи коты по WATCHDOG на аттини13
Пытаюсь настроить прерывание по сторожевому таймеру, не получается , в симуляторе атмел студии 4 и в протеусе не работает, хотя при компилировании нет ошибок
глаза боятся, а руки что то не делают))
- Реклама
WDT не поддерживается студией
https://radiokot.ru/forum/viewtopic.php ... 2#p3424092
По коду. Можно воспользоваться режимом переключения бита порта. Тогда и пуши-попы не нужны.
Типа такого
https://radiokot.ru/forum/viewtopic.php ... 2#p3424092
По коду. Можно воспользоваться режимом переключения бита порта. Тогда и пуши-попы не нужны.
Спойлер
Код: Выделить всё
.org $008
WATCHDOG:
SBI PINB,2
reti ; возвращаемся из прерывания- Вложения
-
- Toggle_pin.PNG
- (15.22 КБ) 410 скачиваний
Последний раз редактировалось akl Пн июл 30, 2018 05:54:22, всего редактировалось 1 раз.
попробуй на железе, поштото симуляторы собаку не любят... похоже как и режимы энергосбережения...
Для тех, кто не учил магию мир полон физики 
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
- Сообщения: 2
- Зарегистрирован: Сб июл 28, 2018 18:32:14
- Реклама
Жена возмущается в железе пробовать)) приходится в симуляторе)
Добавлено after 5 minutes 8 seconds:
akl а чем плохи пуши попы? вроде все как надо в прерывании оформлено.... Товарищи полосатые, мне хотя бы скажите в теории хотя бы верно настроил собаку на прерывание?) нет пока возможности в железе потыкать, я б с удовольствием)
и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось
Добавлено after 5 minutes 8 seconds:
akl а чем плохи пуши попы? вроде все как надо в прерывании оформлено.... Товарищи полосатые, мне хотя бы скажите в теории хотя бы верно настроил собаку на прерывание?) нет пока возможности в железе потыкать, я б с удовольствием)
и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось
глаза боятся, а руки что то не делают))
Они съедают процессорное время, флэшпамять и ОЗУ 
[uquote="sergo80zxc",url="/forum/viewtopic.php?p=3429061#p3429061"]... а чем плохи пуши попы? вроде все как надо в прерывании оформлено.... Товарищи полосатые, мне хотя бы скажите в теории хотя бы верно настроил собаку на прерывание?) нет пока возможности в железе потыкать, я б с удовольствием)
и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось[/uquote] Студия показывает, что ручная установка WDTIF вызывает переход на прерывание WDT. Большего от студии ожидать не приходится.
Для примера. В студии переходите на русскую раскладку-> выделяете нужное -> заносите в буфер (Ctrl C) -> вставляете в поле сообщения (Ctrl V) -> опять выделяете, но уже в поле сообщения -> нажимаете на тег CODE -> опять выделяете вместе с тегом CODE -> нажимаете на тег spoiler.
и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось[/uquote] Студия показывает, что ручная установка WDTIF вызывает переход на прерывание WDT. Большего от студии ожидать не приходится.
Для примера. В студии переходите на русскую раскладку-> выделяете нужное -> заносите в буфер (Ctrl C) -> вставляете в поле сообщения (Ctrl V) -> опять выделяете, но уже в поле сообщения -> нажимаете на тег CODE -> опять выделяете вместе с тегом CODE -> нажимаете на тег spoiler.
Спойлер
Код: Выделить всё
; НАСТРОЙКА СТОРОЖЕВОГО ТАЙМЕРА
;
;грубо говоря мы включаем сторожевой таймер с периодом 0,25 сек, и командой WDR периодически его обнуляем, и по теории он
;перезапустит МК если произойдет зависание программы и программа вовремя не сможет обнулить сторожевой таймер
;
;
.cseg
.include "tn13Adef.inc"
;***************************************************************************************
;***************************************************************************************
.org $000 rjmp RESET ; Reset Handler
;.org $001 reti EXT_INT0 ; IRQ0 Handler Внешнее прерывание 0
;.org $002 reti PCINT0 ; PCINT0 Handler Прерывание по изменению состояния выводов
;.org $003 reti TIM0_OVF ; Timer0 Overflow Handler Переполнение таймера/счетчика ТО
;.org $004 reti EE_RDY ; EEPROM Ready Handler EEPROM готово
;.org $005 reti ANA_COMP ; Analog Comparator Handler Аналоговый компаратор
;.org $006 reti TIM0_COMPA ; Timer0 CompareA Handler Совпадение А таймера/счетчика ТО
;.org $007 reti TIM0_COMPB ; Timer0 CompareB Handler Совпадение В таймера/счетчика ТО
.org $008
WATCHDOG:
SBI PINB,2
reti ; возвращаемся из прерывания
;*****************************************************************************************
RESET:
CLI ; запретить все прерывания
; ldi r16, low(RAMEND)
; out SPL,r16 ; инициализация стека в тиньке 13
Ldi r16, 0b11111111
out DDRB, r16 ;все биты на выход
;***************************************************************************************
WDR ;команда сброса сторожевого таймера
Ldi r16, 0b00011000 ;одной командой устанавливаем в 1 биты В3(WDE) и В4(WDCE)
out WDTCR, r16 ;такой порядок записи для ватчага
Ldi r16, 0b00000000 ;сбрасываем бит В4(WDCE) и бит В3(WDE) , выставляем период тайм-аута ватчага
out WDTCR, r16 ;бит В2(WDP2) сбрасываем в 0, биты В5(WDP3), В1(WDP1), В0(WDP0) сбрасываем в 0
;
;период тайм-аута выставлен в 16мс
Ldi r16, 0b01000000 ;
out WDTCR, r16 ;бит В6(WDTIE) установим в 1 ( разрешим прерывание WATCHDOG
SEI ; разрешить прерывания
;***************************************************************************************
main:
rjmp main ; зацикливаем по кругалю МК
;*************************************************************************************
.EXIT


