Serielle Verbindung zeigt nur die Hälfte an

Gast #2141025
Lesenswert?
• ▲
▼
Hallo,
meine serielle Schnittstelle zeigt mir nur das untere Nibble an.
BAUD-Rate, Stoppbits, etc und Kommunikation ist alles OK, aber:
Im Programmauszug sieht man, wie ich den Wert in die Variable 
'send_this' einlese und dann der ser. Schnittstelle übergebe.
Im AVR-Studiosimulator wird in der USART-UDR genau dieser Wert (0x35) 
angezeigt. Lese ich den Wert über ein Terminalprogramm im PC aus, wird 
mir nur das untere Nibble (in dem Fall nur die 5) ausgegeben.
Was mache ich falsch?
Gruß
Michael
1
...  
2
    ldi     send_this, 0x35
3
    rcall   serout                               
4
    rjmp    loop
5

6
serout:
7
    sbis    UCSRA,UDRE                  ; Warten bis UDR für das nächste
8
                                        ; Byte bereit ist
9
    rjmp    serout
10
    out     UDR, send_this
11
    ret                                 ; zurück zum Hauptprogramm
#2141027
Lesenswert?
• ▲
▼
Dein Terminal zeigt keine Werte an, sondern Zeichen. Jedes Zeichen hat 
einen Code, den ASCII Code.

Und zufällig ist der ASCII Code von '5' nun mal 0x35.

Wenn du am Terminal 35 dort stehen haben willst, dann must du 2 Zeichen 
senden. Eines für die '3' und eines für die '5'.
Gast #2141035
Lesenswert?
• ▲
▼
dr.prof.schlau schrieb:
> Was mache ich falsch?

Du verwechselt was, typischer Anfängerfehler.

0x35 ist der ASCII-Code für das Zeichen 5, genau wie 0x41 für das große 
A steht. Wenn du alos 0x35 an den PC sendest zeigt dir dein 
Terminalprogramm eine 5 an.

2 Möglichkeiten:
- Ein Terminalprogramm nutzen was die empfangenen Rohdaten anzeigt (also 
0x35 bzw. 53);
- Die Zahl in ASCII-Zeichen zerlegen: Statt 0x35 zu senden sendest du 
den ASCII-Code von 0, dann den von x, den von 3 und den von 5.

Übrigens: In der Informatikwelt steht die Schreibweise 'Zeichen' für 
dessen ASCI-Code, 'A' ist also 65 und '0' 48.

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.