Okay, habe mal meine Sendefunktion überarbeitet, sie Schluckt jetzt nur
16bit variablen:
1 | void I2cBigNum(int16_t bigNum){
|
2 | byte myArray[2];
|
3 | myArray[0] = (bigNum >> 8);
|
4 | myArray[1] = bigNum ;
|
5 | Wire.write(myArray, 2);
|
6 | }
|
Meine Empfängerfunktion ist diese:
1 |
|
2 | uint8_t low = Wire.read();
|
3 | RS422.print("LOW Byte: ");
|
4 | RS422.println(low);
|
5 | // Read high byte into buffer
|
6 |
|
7 | uint8_t high= Wire.read() ;
|
8 | RS422.print("HIGH Byte: ");
|
9 | RS422.println(high);
|
10 |
|
11 | RS422.print("Gesamtbyte :");
|
12 | uint16_t voll= low;
|
13 | voll = voll << 8 | high;
|
14 | RS422.println(voll);
|
Das Ergebnis lautet dann jedoch 1023, anstatt 1000... Teste ich es mit
1050 anstatt 1000 ist das Ergebnis 1279. Gibt es dazu eine Erklärung?