8Bit Array (2 Elemente) in eine 16Bit Variable packen

Gast #4607473
Lesenswert?
• ▲
▼
Hallo,

ich hab eine Funktion, der ich einen Zeiger übergebe!
"DeviceID"

nun möchte ich, dass die Werte, die im uint8_t Array "Receive_buf"
stehen, an die Adresse des Zeigers "DeviceID"
geschrieben werden,
dabei sollen oberes und unteres Byte miteinander vertauscht werden!!!


Das hier tut's leider nicht!!
Die letzte Zuweisung klappt nicht!
Steht immer 0 drin?!

void Function(uint16_t  *DeviceID)
{
    static uint8_t PtrReg[2];
    static uint8_t Receive_buf[2]; // 2 bytes are going to be received!
    static uint8_t DeviceID8_0;
    static uint8_t DeviceID8_1;
    PtrReg[0]= 0xFF;

    GetData(PtrReg,  Receive_buf, 1, 2);
    DeviceID8_0 =  Receive_buf[1];
    DeviceID8_1 =  Receive_buf[0];
    DeviceID =  ((uint16_t) DeviceID8_1 << 8 | DeviceID8_0);

}

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