uart datenmüll nach 10 sekunden

OP #640696
Lesenswert?
• ▲
▼
Hallo,
ich verwende den AT90CAN128 mit einem externen Quarz (8MHz). Mit Hilfe 
des Tutorials habe ich mir ein Programm geschrieben um Daten an die 
serielle Schnittstelle des PCs zu senden. Eigentlich funktioniert es 
wunderbar, allerdings nur 10 Sekunden lang. Die Ausgabe sieht dann immer 
so aus (jede Sekunde wird eine Zeile ausgegeben):

initialising uart
1 Sekunde!
2 Sekunden!
3 Sekunden!
4 Sekunden!
5 Sekunden!
6 Sekunden!
7 Sekunden!
8 Sekunden!
9 Sekunden!  •­Õ¹‘þ¡ø
16 ÷en!
       ¹‘•¹…{s¹‘•¹þkundå Sek¹

Es dauert immer zwischen 8 und 10 Sekunden. Als wenn sich da irgend 
etwas an der Taktung "verstimmen" würde. Die Fuses habe ich mehrfach 
überprüft und sind richtig gesetzt.
Weiß jemand womit das zusammenhängen kann?
Vielen Dank schon mal.
Angehängte Dateien:
Gast #640706
Lesenswert?
• ▲
▼
vielleicht wird Dein Quarz warm und er verändert dadurch seine Frequenz? 
Wenn die Übertragung beim Einschalten vlt. schon zusätzlich Grenzwertig 
läuft, kann soetwas schon einmal passieren.

Gruß
#640709
Lesenswert?
• ▲
▼
Quarzler wrote:
> vielleicht wird Dein Quarz warm und er verändert dadurch seine Frequenz?
> Wenn die Übertragung beim Einschalten vlt. schon zusätzlich Grenzwertig
> läuft, kann soetwas schon einmal passieren.
>
> Gruß

So ein völliger Quatsch!

Mache Deine message[4] mal größer.
tab[] in l2a() sollte man "static" deklarieren...
Gast #640731
Lesenswert?
• ▲
▼
Vielen Dank erstmal für eure Antworten.
hier mal einige Zusätze meinerseits:
- ja, ich verwende einen MAX232.
- die l2a funktion hab ich hier aus der Codesammlung (die ist auch nicht 
das Problem, da das gleiche Verhalten auch bei Ausgaben ohne diese 
auftritt).
- mit verschiedenen Datenraten (bis minimal 2400) hab ich's auch 
versucht -> gleiches Verhalten.

Eine "leicht falsche" Datenrate kann ich mir auch nicht vorstellen, da 
jedes Frame ja neu synchronisiert wird.
Dieses Verhalten ist auch aufgetreten, wenn ich nur die Funktion 
uart1_send_char verwendet habe. Ich glaucbe also nicht, dass der Fehler 
in l2a oder uart1_send_str steckt.
Es könnte allerdings die Funktion uart1_send_char sein - aber die is 
doch so primitiv!
Hat denn noch niemand dieses Problem gehabt??
OP #640872
Lesenswert?
• ▲
▼
OK, damit kann ich leben. Aber kannst du mir auch sagen wo?
Ich bin den Quelltext schon zig-fach durchgegangen und hab fast alles 
mit Beispielen aus dem Netz verifizieren können. So viel gibt es ja 
eigentlich nicht softwaretechnisch einzustellen.
Ich bin im Moment ziemlich ratlos.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

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.