UART-Ausgabe führt bei längerem String zu Resert des µC

Gast #4783058
Vielleicht kann mir jemand mit folgenden Problem mal auf die Sprünge 
helfen, was ich hier falsch mache.

Ich würde gerne Stings per UART vom Atmega168 auf den PC übertragen.

Hierzu nutze ich einen FT232RL.

Ansich funktionier die Übertragung, solane ich nur einen kurzen String 
übertrage. Wird dieser länger, macht der µC scheinbar immmer einen 
Reset, sodass der Sting nur Abgehackt im Terminalprogramm (Putty) 
erscheint.

Momentan verwender ich 19200 als Baudrate. Gehe ich runter auf 9600, 
wird noch weniger Inhalt übertragen.

Mach ich beim Senden etwas falsch?

Ich verwende den Code aus dem GCC-UART-Tutorial und gebe den Text wie 
folgt aus:

uart_puts("\r\nHallo Welt, Hallo Welt, Hallo Welt, Hallo Welt");

Die Ausgabe sieht dann leider wie im Screenshot aus.
Angehängte Dateien:
Gast
Wenn ich testweise, statt viermal "Hello World" in einem Rutsch 
auszugeben, 4 einzelne Übertragungen daraus mache, besteht das Problem 
dennoch. Zweimal klappts und dann gibts nen Reset.
Gast
> Zweimal klappts und dann gibts nen Reset.

Das klingt immernoch sehr nach WDP - überprüfen! Und wenn Du schon dort 
bist dann schau Dir WDTON auch noch gleich an ob das 0 ist.
Gast
Mark schrieb:
> Wenn ich testweise, statt viermal "Hello World" in einem Rutsch
> auszugeben, 4 einzelne Übertragungen daraus mache, besteht das Problem
> dennoch.

Dann gibt dem Wachhund zwischen den Übertragungen doch mal eine 
Streicheleinheit.
Gast
Eigentlich ist zu dem Zeitpunkt der Ausgabe noch gar kein Watchdog 
aktiv. Mache die Übertragung momentan direkt nach der uart_init und 
nicht später im Programm, um solche Feher ausschließen zu können.
Gast
Danke an alle,
danke an g457. Du hattest recht. Lag am Watchdog!!! Vielen Dank, da wäre 
ich nicht drauf gekommen und hab schon sinnlose Stunden davorgehockt.
Gast
Aber noch eine weiter Frage. Momentan ist es ja so, dass die Strings 
ununterbrochen durch Putty jagen.

Wie realisiert man eine einmalige Ausgabe, sodass die Daten nicht 
ständig Flackern? Einfach nur die Daten durch eine Schleife einmal 
übertragen lassen? Oder gibts da nen speziellen Befehl?
Mark schrieb:
> Wie realisiert man eine einmalige Ausgabe, sodass die Daten nicht
> ständig Flackern? Einfach nur die Daten durch eine Schleife einmal
> übertragen lassen? Oder gibts da nen speziellen Befehl?

Hä?
Wenn Du das in einer Schleife sendest kommt es natürlich immer wieder.
Was für eine Schleife?
Übertrage es einmal und es kommt einmal.
Überträgst Du es in der Schleife, kommt es natürlich bei jedem Durchgang 
der Schleife.

Gruß,
Norbert

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 9 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.