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);
}
Hermann S. schrieb: > DeviceID = ((uint16_t) DeviceID8_1 << 8 | DeviceID8_0); DeviceID ist ein Zeiger!
1 | *DeviceID = ((uint16_t) DeviceID8_1 << 8 | DeviceID8_0); |
Peter II schrieb: > DeviceID ist ein Zeiger! > *DeviceID = ((uint16_t) DeviceID8_1 << 8 | DeviceID8_0); oh ja danke Das hat geholfen
Hermann S. schrieb: > Das hat geholfen dein Compiler sollte auch eine Warnung angezeigt haben, die sollte man halt nicht ignorieren. Der Cast ist auch nicht notwendig.
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.