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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren