Suche Software die Hex über serielle Schnittstelle sendet

#355957
Lesenswert?

> dann hast du in r16 'A'
> und in r17 'B'

Und was hast du, wenn der Wert in den Nibbles kleiner als 10 war?
Ich bitte dich, deine (gut gemeinten) Vorschläge besser zu prüfen ehe
du sie absendest.

Ich hatte es mal so gelöst:

pc_printhex:            ;Gibt Byte als HEX an USART aus.
 push wl                    ;für zweite Ziffer sichern
 swap wl                    ;oberes Nibble zuerst
 rcall pc_printhex1         ;ausgeben...
 pop wl                     ;unteres Nibble
pc_printhex1:           ;Nibble ausgeben
 andi wl,15                 ;nur unteres Nibble interessiert und
 ori wl,'0'                 ;zur Ascii-Ziffer wandeln
 cpi wl,'9'+1               ;Wert über 9?
 brmi pc_printhex2          ;nein, so lassen...
; subi wl,-39                ;zum Kleinbuchstaben wandeln
 subi wl,-7                 ;zum Großbuchstaben wandeln
pc_printhex2:
 rjmp pc_data               ;Zeichen ausgeben und zurück...

pc_data:
 sbis UCSRA,UDRE            ;TX-UDR leer? ja...
 rjmp pc_data               ;nein, nochmal prüfen...
 out udr,wl                 ;Byte an PC senden
 ret

...

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