Arduino 328P: Warum resettet er?

Gast #5632282
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
Chris J. schrieb:
> Und was ist mit einem Puffer Überlauf der seriellen Daten, die
> reinkommen? Kann das auch dazu führen?

Das kommt drauf an, wie das Programm zu Pufferverwaltung aufgebaut ist, 
und ob es einen Pufferüberlauf geordnet verhindert.
Gast
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
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

Eine eigene Frage? Dieser Thread ist über 7 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.