Yritän selvittää yhden Microchipin evo kortin toimintaa, tekeillä oma softa Delphillä.
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en546844
Saan ohjelmallani yhteyden korttiin ja dataa ulos.
Mutta data on “ei ymmärrettävässä” muodossa tyyliin:
00 01 01 00 00 00 25 88 C1 C8 C3 29 00 00 C1 06 81 82 41 E4 00 00 41 A0 BF 3F 00
C8 C3 … alkaen on lämpötilat (3 kpl)
41 A0 BF 3F on viimeinen jossa 41 on miinusmerkki, jos plussaa niin on 42.
Ilmeisesti tässä on “syyllinen”. Miten saan purettua datan taas ymmärrettävään muotoon?
double ConvertByteToDouble()
{
TempStore = ReceivedDataBuffer[1];
_asm
MOVF TempStore , 0 , 1
MOVWF TempStoreDouble + 3 , 1
_endasm
TempStore = ReceivedDataBuffer[2];
_asm
MOVF TempStore , 0 , 1
MOVWF TempStoreDouble + 2, 1
_endasm
TempStore = ReceivedDataBuffer[3];
_asm
MOVF TempStore , 0 , 1
MOVWF TempStoreDouble + 1, 1
_endasm
TempStore = ReceivedDataBuffer[4];
_asm
MOVF TempStore , 0 , 1
MOVWF TempStoreDouble , 1
_endasm
return TempStoreDouble;
}