Arduino 328P: Warum resettet er?

Gast #5632282
Lesenswert?

Hallo,

welche Gründe gibt es warum ein Arduino, also eigentlich nur der 328P 
Chip mitten im Programm resettet? Ich benutze den Watchdog auf eine ISR, 
sleep Mode ebenfalls aber auch wenn ich alles was mit wdt und sleep 
auskommentiere resettet er manchmal. Da ein JTAG Debbuging mit der 
Arduino IDE nicht möglich ist suche ich weitere Ursachen. Kann man einen 
Brown Out irgendwie abfragen? Ich habe eine 3.3V Version, vielleicht 
schlägt der ja zu früh zu? Und was ist mit einem Puffer Überlauf der 
seriellen Daten, die reinkommen? Kann das auch dazu führen?

Welches Programm kann ich in Verbindung mit einem Diamex ISP Programmer 
verwenden um Fuses zu setzen? Bin nicht so der AVR Kenner.

Gruss,
Christian
Gast #5632381
Lesenswert?

Wolfgang schrieb:
> Das kommt drauf an, wie das Programm zu Pufferverwaltung aufgebaut ist,
> und ob es einen Pufferüberlauf geordnet verhindert

Serial (UART0) und Softserial aus der eingebauten Lib.....

AVR Studio ist etwas aufgeblasen, was ist mit PonyProg2000? Kann das den 
Diamex ansteuern?
Gast #5632430
Lesenswert?

J. Zimmermann schrieb:
> Ich tippe auf eine fehlende ISR bei aktiviertem Interrupt.
> mfg
> Achim

Hmmm... die habe ich.

ISR(WDT_vect) {

WDTCR |= (1<<WDIE);

}

AVR Burn O Mat !!! Genau die hatte ich im Blick,  nur vergessen über die 
Zeit. Boah..... noch bis 18 Uhr arbeiten heute.... erst dann wieder an 
das Hobby :-((

Reset Cause ermitteln. Mit External Reste scheint wohl der Reset Pin 
gemeint zu sein?

unsigned char ResetSrc = MCUSR;   // save reset source
   MCUSR = 0x00;  // cleared for next reset detection

   ... // further initialisation

   if (ResetSrc & PORF)
      cputs("PWR RESET\n\r");
   if (ResetSrc & EXTRF)
      cputs("EXT RESET\n\r");
   if (ResetSrc & BORF)
      cputs("BOD RESET\n\r");
   if (ResetSrc & WDRF)
      cputs("WDT RESET\n\r");
Angehängte Dateien:
Beitrag #5632550 wurde von einem Moderator gelöscht.

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