Ein Tsic506 sagt: 930 Dezimal.
Datenblatt: centigrade = tsicdata/2047*(TSIC_HT-TSIC_LT) + TSIC_LT;
und HT = 60, LT = -10 seien Standardwerte.
Demnach 930/2047*(HT-LT)+LT=21,80 °C, das kommt hin.
1 | char buffer[8];
|
2 | centigrade = tsicdata/2047*(TSIC_HT-TSIC_LT) + TSIC_LT;
|
3 | itoa( centigrade, buffer, 10 );
|
Ergibt aber "246" bzw. "-10" wenn man centigrade auf int8_t ändert.
Auch
1 | centigrade = tsicdata*(TSIC_HT-TSIC_LT)/2047 + TSIC_LT;
|
macht da keinen Unterschied.
Wie komme ich ohne floating point lib auf ein brauchbares Ergebnis?