Kiedy czujniki są zidentyfikowane, to trzeba z każdego z nich odczytać temperaturę i przekonwertować ją na wartość w stopniach Celsjusza. Odczytywanie temperatury realizuje funkcja ReadRawTemp pokazana na listingu 15. Jej argumentem jest kolejny numer urządzenia.
List. 15. Odczyt temperatury z rejestrów czujnika
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
unsigned int ReadRawTemp(unsigned char device) { int HighByte, LowByte; Send_MatchRom(device); // wybór urządzenia. write_byte(0xbe); // komenda Read Scratchpad LowByte=read_byte(); //odczytanie rejestrów temperatury HighByte=read_byte(); return (HighByte << 8) + LowByte; } //wybór urządzenia unsigned char Send_MatchRom(unsigned char DeviceNo) { unsigned char i; if(DS_reset()) return FALSE; write_byte(0x55); // match ROM for(i=0;i<8;i++) { write_byte(FoundROM[DeviceNo][i]); //send ROM code } return TRUE; } |
Druga część artykułu jest dostępna tu.