Hallo! Wie kann ich eine 16Bit Variable (z.B.0xFFFF) in zwei 8 Bit Variablen trennen?? Möchte sie über einen 8 Bit Port ausgeben. ganz nach dem Motto: Variable = 0xFFFF; PORTA = Variable; Danke für eure Hilfe!
Am effektivsten über eine Strucktur mit 2 chars und 1 int Am einfachsten mit Port1=Variable&255, Port2=Variable>>8
HiByte = (Variable >> 8); PORTA = HiByte; LowByte = (unsigned char) Variable; PORTA = LowByte; Rick
Mit union: union TInt16 { unsigned int u; unsigned char b[2]; }; Du kannst dann folgendes machen: TInt16 otto; otto.u = 0xf01a; PORTA = otto.b[1]; PORTB = otto.b[0]; Gruß, Michael
> Du kannst dann folgendes machen: > union ... Das ist allerdings nicht mehr portabel (Little Endian vs. Big Endian), weswegen die Lösung mit dem Shiften vermutlich doch besser geeignet ist.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.