Hi Truddel,
ich weiss es zufällig
In dem case 'S': - Teil wird das gemacht. Zuerst wird der Sensor
angetriggert, dass er eine Messung durchführen soll, kurz später
werden dann 8 Bytes aus ihm ausgelesen, im Array aucData zwischengespeichert
und auch direkt "roh" zum Debuggen als Hex-Dump an der RS232 ausgegeben
( vSendUartHexByte( y ) ).
Danach folgt die Berechnung:
iTemp = (INT)aucData[1] * 256;
iTemp |= aucData[0];
-> iTemp hat jetzt schon den vorzeichenbehafteten Temperaturwert * 2, man
könnte diesen also jetzt schon auf 0.5° genau ausgeben.
Es wird mithilfe von 2 weiteren ausgelesenen Werten die Temperatur auf
1/10° genau ermittelt ( siehe Datenblatt!) und dann auf der RS232 ausgegeben.
Für die Ausgabe eines einzelnen Zeichens wird immer die Routine
vSendUartByte() genutzt. + . und - werden direkt ausgegeben, die Ziffern
immer in einer Konstruktion vSendUartByte( x + 0x30 ), denn 0x30 ist der
ASCII-Code für '0', 0x31 = '1' usw. \r und \n sind linefeed / carriage return,
damit das auf dem PC-Terminal hübsch aussieht.
Gruß
Stefan