USART Probleme

Gast #1391297
ich habe seit kurzem Probleme mit der RS232. Im Terminal erscheinen die 
Daten erst, sobald (während) ich einen Reset am PIC auslöse. Was kann 
das sein?
Ich gebe die Daten mit folgender FUnktion aus:


void Usart_write(unsigned char data)
{
  while(!TXIF);
  TXREG = data;
}
Gast #1391307
da ist nicht viel...

ist bei einer schleife das selbe:


i=48 //ASCII48 = "0" 57 = "9"
do{
  Usart_write(i)
  }while((i++)<58);


so bekomm ich die Zahlen von 0 bis 8 geliefert, wenn ich resete, kommt 
auch noch die 9
Gast #1391309
Ich kenne mich mit PICs nicht aus. Vielleicht musst du auf ein Flag 
warten, dass du neue Daten nachliefern kannst und der Buffer nicht grade 
voll ist.

Warum beim Reset die 9 kommt, kann ich dir leider nicht sagen.
Gast #1391384
Er wartet doch mit

>while(!TXIF);

Die 9 kommt wahrscheinlich, weil die anderen Zahlen überschrieben 
werden. Ich glaueb es kann im Terminal eingestellt werden, dass bei 
einem neuen Zeichen ein \n eingefügt wird. Dann sollten die Zahlen 
untereinander geschrieben werden.
Gast #1391481
Das Problem konnte ich inzwischen klar definieren:
das letzte Zeichen wird erst während (?) eines Resets übermittelt, und 
dann nochmal anstatt dem ersten Zeichen nach dem Neustart...
schon merkwürdig

Antwort schreiben

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