Forum: Compiler & IDEs High Byte / Low Byte


von Malte Struebert (Gast)


Lesenswert?

Hallo,

kann mir jemand sagen wie ich mit CodeVision AVR am besten eine

Integer Zahl in ihr High Byte und Low Byte zerlege so das ich sie als
8-Bit Zahl per UART übertragen kann?

Gruß
Malte.

von OldBug (Gast)


Lesenswert?

Eigentlich heist das Forum "GCC", aber ich will mal nicht so sein ;)

Entweder macht man das mit einer "union":

union
u
{
    int iValue;
    unsigned char cValue[2];
};

...oder einfach "Mask&Shift":

int iValue;
unsigned char cLow;
unsigned char cHigh;

[..]
    cLow  = iValue & 0xFF;
    cHigh = iValue >> 8;
[..]

von Malte Struebert (Gast)


Lesenswert?

Hi,

jo war schon klar das es hier nicht 100% reinpasst, aber ich denk
immernoch besser als woanders oder? Immerhin gehts ja hier um C
Compiler ;-)

Mask&Shift... oh man, naja wenn man ein Brett vorm Kopf hat ;-)

Danke
Gruß
Malte.

von gast (Gast)


Lesenswert?

Hallo,

kann mir jemand sagen wie man in c Zwei char Zahlen (High Byte und Low 
Byte) zusammenbringen kann, so das man sie als 16-Bit bekommst?
1
    
2
...
3
unsigned int 8Low  = 0xFF;
4
unsigned int 8High = 0x10;
5
unsigned int 16Value = 0x0000;
6
7
...
8
16Value = ???? // 8Low + 8High
9
...

Gruß

von Peter (Gast)


Lesenswert?

16Value = 8Low + (8High << 8)

von gast (Gast)


Lesenswert?

danke

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.