Hallo,
ich bekomme 16 bit durch 2 x 8 bit Werte parallel eingelesen. Das mache
ich über den PortC. Allerdings sollen meine 16 bit, nach dem kombinieren
von den beiden 8 bit, dann auch direkt im 2er Komplement umgewandelt
werden.
Oder anders gesagt, die beiden 8 bit sind unsigned und die möchte ich in
eine 16 bit signed umwandeln
Mein Code:
1 | uint8_t VarPortCHigh = 0;
|
2 | uint8_t VarPortCLow = 0;
|
3 | int16_t VarC = 0;
|
4 |
|
5 | VarPortCHigh = PINC; //High Byte speichern
|
6 |
|
7 | //umschalten auf low
|
8 |
|
9 | VarPortCLow = PINC; //Low Byte speichern
|
10 |
|
11 | VarC = VarPortCHigh * 256 + VarPortCLow;
|
Kurze Frage:
Ist das so korrekt? Bekomme ich so meine Werte zwischen -32768 und
+32767 für VarC?
Danke