Forum: Mikrocontroller und Digitale Elektronik 2 Hexzahlen in eine Variable zusammenrechnen


von Wolfgang K. (polarwolf_94)


Lesenswert?

Hallo

Wie kann ich 2 Hexzahlen (in C zB 0xAB und 0x04)
Es ist so, dass ich von einem Touch Display bzw Grafikcontroller zwei 
mal 2 Hexzahlen bekomme über USART.
Also schreib ich das dann t1=USART.DATA und t2=USART.DATA
DAnn rechne ich t_gesamt=t1+t2

oder wie?
Wie kann ich am besten eig Empfangen?
Stimmt das mit t1=USART.DATA?

LG Wolfi

von Peter II (Gast)


Lesenswert?

Wolfgang Karner schrieb:
> Also schreib ich das dann t1=USART.DATA und t2=USART.DATA
> DAnn rechne ich t_gesamt=t1+t2

wenn du eine 1 und eine 2 zu einer 12 zusammensetzen willst. kannst du 
auch nicht 1 + 2 rechnen.

Wie setzt du also eine 1 und eine 2 zu einer 12 zusammen?

von Frank B. (f-baer)


Lesenswert?

Willst du addieren, oder möchtest du high- und lowbyte zu einem 
16Bit-Wert zusammenziehen?
Ob deine UART-Geschichte stimmt, kann dir niemand sagen, solange du 
nicht ein paar mehr Details springen lässt.

von Karl H. (kbuchegg)


Lesenswert?

Wolfgang Karner schrieb:

> Wie kann ich am besten eig Empfangen?
> Stimmt das mit t1=USART.DATA?

Ich lege dir das AVR-GCC-Tutorial wärmstens ans Herz (Unter der Annahme, 
dass du in C programmierst, da du C erwähnt hast)
Da gibt es auch ein Kapitel (wenn mich nicht alles täuscht, dann ist das 
ein 'weiterführendes Kapitel') über den UART und wie man ihn 
programmiert.

: Bearbeitet durch User
von Amateur (Gast)


Lesenswert?

Das geht genauso wie im dezimalen Bereich.
Wenn Du 1 und 2 zu 12 zusammenfassen willst, mach Du (?) folgendes:
(1 x 10) + 2 Überraschung.
Befindest Du Dich im sedezimalen Bereich so mach Du einfach:
(1 x 256) + 2
oder
(1 SHL 8) + 2

Darauf könntest Du natürlich auch selber kommen - oder auch nicht.

von oldmax (Gast)


Lesenswert?

Hi
So ganz kann ich deine Frage nicht beantworten. Überleg mal
>Wie kann ich 2 Hexzahlen (in C zB 0xAB und 0x04)
>Es ist so, dass ich von einem Touch Display bzw Grafikcontroller zwei
>mal 2 Hexzahlen bekomme über USART.

Über USARt bekommst du immer Byte.  Es kann aber sein, das ein Byte ein 
ASCII-Char abbildet, oder 2 Nibble (Zahlen je Nibble von 0 bis 9) oder 
einfach nur eine Zahl zwischen 0 und 255, ob binär oder Hexadezimal. Das 
ist nur die Darstellungsart, die du zu lesen bekommst.
Gruß oldmax

von W.S. (Gast)


Lesenswert?

Wolfgang Karner schrieb:
> Wie kann ich 2 Hexzahlen (in C zB 0xAB und 0x04)
> Es ist so, dass ich von einem Touch Display..

Versuche doch zu allererst, dich für andere VERSTÄNDLICH auszudrücken.
Was für Zahlen hast du und was willst du damit anstellen?
Oder hast du nur Textzeichen und garkeine Zahlen?
Ist das, was du über die Serielle hereinbekommst, lesbarer Klartext oder 
nicht?

Merke: Klartext muß erst von einem von dir zu schreibenden Programm in 
Zahlen konvertiert werden. Wenn du also lesen kannst
"x=47110815"
dann mußt du die darin enthaltenen Ziffern erst zu einer Zahl 
konvertieren, bevor du damit rechnen kannst.

Klaro?

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.