uint8_t MSB[]={0x4B,0x28,0x00,0x00,0xF3,0xF3,0xFF,0xEF};
uint8_t LSB[]={0x00,0x00,0x20,0x00,0x80,0xFF,0xE0,0xE0};
void setup() {
Serial.begin(9600);
for (int i = 0; i<8; i++){
uint16_t waarde_unsigned = MSB[i]*256 + LSB[i];
Serial.println(waarde_unsigned,BIN);
uint16_t waarde_signed = waarde_unsigned >> 3;
Serial.println(waarde_signed,BIN);
Serial.println(waarde_signed,HEX);
int teken = (MSB[i] & 0x80) >> 7;
if(teken == 0){
float temp = waarde_signed * 0.0625;
Serial.print("positief: ");
Serial.println(temp, 4);
}
else{
uint16_t comp = (waarde_signed + 1) & 0x1FFF;
Serial.println(comp, BIN);
float temp = -(comp * 0.0625);
Serial.print("negatief: ");
Serial.println(temp, 4);
}
Serial.println();
}
}
void loop() {
}