11.01.2017
[PROJEKT] Wielokanałowy termometr i termostat z wyświetlaczem OLED [1]
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
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.