AT Mega 16 - Watchdog Problem

Gast #790514
Lesenswert?
• ▲
▼
Hallo Forum,

nachdem ich mit dem Watchdog beim ATmega16 fast am verzweifeln bin, hier 
mal die Frage an euch Experten. Ich habe folgende Testroutine jeweils 
mit IAR und GCC übersetzt. Das Ergebnis scheint meines Erachtens auch 
okay. Die _WDR(); Instruction wird zyklisch bedient, trotzdem lande ich 
regelmässig auf dem Reset-Vector. Egal welche Toolchain und ob Flash 
oder Simulator, der Watchdog schlägt immer wieder zu, obwohl er resettet 
wird.
Habe ich was übersehen oder funktioniert das Ding nicht beim Mega16 ?

int main( void )
   {
   WDTCR = 0x0A;
   for (;;)
      {
      _NOP();
      _NOP();
      _WDR();
      }
   return 0;
   }



20:          WDTCR = 0x0A;
+0000002A:   E00A        LDI     R16,0x0A         Load immediate
+0000002B:   BD01        OUT     0x21,R16         Out to I/O location
23:             _NOP();
+0000002C:   0000        NOP                      No operation
24:             _NOP();
+0000002D:   0000        NOP                      No operation
25:             _WDR();
+0000002E:   95A8        WDR                      Watchdog reset
+0000002F:   CFFC        RJMP    PC-0x0003        Relative jump


Bj

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren