Forum: Mikrocontroller und Digitale Elektronik char - array in uint umwandeln (msp430-gcc)


von Matt M. (mtbmatt)


Lesenswert?

Hallo Miteinander,

ich stehe auf dem schlauch und komme nicht weiter. Die Lösung muß 
einfach sein. Vielleicht kann mich jemand auf die richtige Lösung 
bringen:

aus einem array

char serialIn mit den Werten:
serialIn[0]=0x12;
serialIN[1]=0x34;

soll myInt mit dem Wert ox1234 werden:

Die Lösung

myInt=serialIn[0];
myInt<<8;
myInt|=serialIn[1];

ergibt 0xff34;

Wie geht man es richtig an?
Einfachere Lösungen werden gerne bevorzugt.

Danke und SChönen Abend

: Verschoben durch Moderator
von Peter II (Gast)


Lesenswert?

Matt Matt schrieb:
> char serialIn mit den Werten:

dann versuch es mal mit einem unsigned char array

von Matt M. (mtbmatt)


Lesenswert?

Das Problem tritt dann später ein. Zu später Sekunde muss aus char[] 
long werden. :-)

Außerdem würde ich es gerne grundsetzlich verstehen.

Danke & schönen Abend

von test (Gast)


Lesenswert?

Matt Matt schrieb:
> serial*In*[0]=0x12;
> serial*IN*[1]=0x34;

von Peter II (Gast)


Lesenswert?

Matt Matt schrieb:
> Zu später Sekunde muss aus char[]
> long werden. :-)

ein char ist oft signed. Und wenn du rechnest kommt halt nichts 
sinnvolles raus.

von Marco M. (marco_m)


Lesenswert?

Matt Matt schrieb:

> myInt<<8;

Dieses Statement hat keinen Effekt. Du meinst wohl:
1
  myInt <<= 8;

Ansonsten:
1
  myInt = (serialIn[0]<<8) + serialIn[1];

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.