Uart kann keine 0 übermitteln

OP #1312609
Moin.

Mein AVR schaffts absolut nicht ne "echte 0" auf den PC zu übertragen. 
Am PC kommt alles mögliche an, nur keine null.

An was kann das liegen?

Noch n bisschen Code:


Initialisierung der Uarts:
1
        UCSRB |= (1<<TXEN)|(1<<RXEN)|(1<<RXCIE);
2
        UCSRC |= (1<<URSEL)|(3<<UCSZ0);
3
        UBRRH=(uint8_t)(UART_BAUD_CALC(UART_BAUD_RATE,F_OSC)>>8);
4
        UBRRL=(uint8_t)UART_BAUD_CALC(UART_BAUD_RATE,F_OSC);
Und ich mach zu Testzwecken im Moment folgendes:
1
for(;;) uart_send(0)

Konfiguration: ATMega32, 16MhZ Quarz

Egal welche Baudraten ich verwende, es kommt nur Käse an.
Alle anderen Zahlen von werden korrekt übermittelt.
Habt ihr ne Idee?

Danke schonmal!

Ralf
#1312616
Hallo,

die erste Frage wäre: welches Terminalprogramm am PC?
0 ist ja schließlich ein Steuercode, der in üblichen Terminalemulationen 
"nichts" bedeutet und das macht das Terminalprogramm dann auch.
HTerm könnte dann weiterhelfen.

Gruß aus Berlin
Michael
OP #1312621
Terminalprogramm ist gtkterm, der mir direkt alle Zeichen als Hexzahlen 
anzeigen kann, von demher kanns also nicht als Steuerzeichen 
interpretiert werden, was auch irgendwo keinen Sinn macht weil es kommen 
ständig von null verschiedene Werte, und nicht nur ein Wert, der von 0 
verschieden ist.

Achja und ich verwende nen USB-RS232 Wandler
OP #1312657
Hab 9600bps, kann mir nicht vorstellen dass es daran liegt, weil alle 
anderen zeichen gehen ja

Im moment versuch ich das hier:

uart_send(10);
uart_send(20);
uart_send(30);
uart_send(40);
uart_send(50);
uart_send(60);
uart_send(0);


10-60 kommt richtig an, bei der 0 kommt was er gerade will:)
OP #1312686
Also hab rausgefunden dass anscheinend wirklich am Terminal Programm 
liegt

wenn ich mit hexdump -C /dev/ttyUSB0 rangeh zeigt er mir alles richtig 
an.

Aber ich versteh trotzdem nicht wieso er erst lauter Kram rauslässt.
Gast #1312721
>Aber ich versteh trotzdem nicht wieso er erst lauter Kram rauslässt.
Kannst Du das mal näher erläutern? Ich meine gelesen zu haben, das die 
Null garnicht rüberkkommt. Dann scheint doch etwas rüberzukommen, aber 
statt der gesendeten Null irgendwelche Zufallsbits.
>bei der 0 kommt was er gerade will

Oder der Satz
>Am PC kommt alles mögliche an, nur keine null.
bedeutet, das entweder statt der Null nichts oder ein anderer Wert 
kommt.
Das wäre schon wichtig zu wissen.

Aus der Verwendung von Am gtkterm folgere ich, das Du unter *n*x 
arbeitest. Was gibt denn stty aus?

Ich habe kürzlich ein ähnliches Problem mit einem Perl Programm gehabt. 
Da musste ich mit stty rumspielen.

Das
>wenn ich mit hexdump -C /dev/ttyUSB0 rangeh zeigt er mir alles richtig
>an.
spricht wiederrum gegen ein Problem, das mit stty zu lösen wäre. Aber 
vielleicht ändert gtkterm ja die Einstellungen. Andererseits wundert 
mich, das hexdump das richtig ausgibt. Vor allem ohne "<" oder so.

Ausserdem ist neu, das Du die serielle Schnittstelle über USB 
angeschlossen hast. Was ist das für ein Konverter? Das kann manchmal 
auch Probleme geben.

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.