Обсуждаем контроллеры компании Atmel.
Ответить

подскажите товарищи коты по WATCHDOG на аттини13

Вс июл 29, 2018 23:30:56

Пытаюсь настроить прерывание по сторожевому таймеру, не получается , в симуляторе атмел студии 4 и в протеусе не работает, хотя при компилировании нет ошибок
Вложения
40.asm
(4.13 KiB) Скачиваний: 357
40.hex
(211 байт) Скачиваний: 225

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 03:40:37

WDT не поддерживается студией
https://radiokot.ru/forum/viewtopic.php ... 2#p3424092
По коду. Можно воспользоваться режимом переключения бита порта. Тогда и пуши-попы не нужны. :)
СпойлерИзображение

Типа такого
Код:
.org   $008
WATCHDOG:
   SBI   PINB,2
  reti                           ; возвращаемся из прерывания
Вложения
Toggle_pin.PNG
(15.22 KiB) Скачиваний: 392
Последний раз редактировалось akl Пн июл 30, 2018 05:54:22, всего редактировалось 1 раз.

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 03:45:06

попробуй на железе, поштото симуляторы собаку не любят... похоже как и режимы энергосбережения...

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 06:04:02

Может быть фьюз WDTON попробовать.

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 06:51:47

Студии FUSE-bits "по пояс". :)

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 21:35:33

Жена возмущается в железе пробовать)) приходится в симуляторе)

Добавлено after 5 minutes 8 seconds:
akl а чем плохи пуши попы? вроде все как надо в прерывании оформлено.... Товарищи полосатые, мне хотя бы скажите в теории хотя бы верно настроил собаку на прерывание?) нет пока возможности в железе потыкать, я б с удовольствием)

и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось

Re: подскажите товарищи коты по WATCHDOG на аттини13

Пн июл 30, 2018 23:11:41

Они съедают процессорное время, флэшпамять и ОЗУ :twisted:

Re: подскажите товарищи коты по WATCHDOG на аттини13

Вт июл 31, 2018 03:28:53

... а чем плохи пуши попы? вроде все как надо в прерывании оформлено.... Товарищи полосатые, мне хотя бы скажите в теории хотя бы верно настроил собаку на прерывание?) нет пока возможности в железе потыкать, я б с удовольствием)

и маленький вопрос еще, забыл как вставку программы сюда вставлять, чтоб написано зелененьким было и сворачивалось
Студия показывает, что ручная установка 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
Ответить