WDR, кажется, отключить сторожевой таймер - PullRequest
0 голосов
/ 15 апреля 2019

Я тестирую некоторый ассемблерный код с atmega16 в Proteus 8 с компилятором AVRASM, и кажется, что инструкция WDR работает неправильно.

Из таблицы данных WDR должен просто сбросить счетчик сторожевого таймера.Поэтому, если я установлю сторожевой таймер для сброса MCU на две секунды и выполню инструкцию WDR, то сторожевой таймер должен дать мне еще две секунды.

main:
      cbi DDRD, 5
      sbi PORTD, 5
      ldi r17, 0b00001111
      out WDTCR, r17   
loop:     
      in r16, PIND
      sbrs r16, 5
      wdr
      rjmp  loop

Но в приведенном выше коде кажется, что послевыполнив WDR, предоставив PIND5 значение 0, сторожевой таймер больше никогда не сработает, и в результате я не получаю сброс сторожевого таймера в течение 2 секунд.Я также проверяю регистр WDTCR, и он не меняется после выполнения WDR.

...