Witam, jako że nie znalazłem odpowiedzi na mój problem to proszę Was o pomoc. Pokrótce opiszę zasadę działania fragmentu mojego programu:
- ( instalowanie czujników ) Wykrywanie czujników i zapamiętywanie ich identyfikatorów w pamięci eeprom
- każde kolejne uruchomienie urządzenia już nie wyszukuje urządzeń tylko pobiera identyfikatory z pamięci
- odczyt pomiaru temperatury z kilku czujników co 1 sekundę
Mój problem dotyczy sytuacji podczas pracy programu gdy pomiar wykonywany jest co 1 sekundę i odłączymy czujnik fizycznie. Wtedy otrzymuję temperaturę 0 C -> bo jest stan wysoki wymuszony przez rezystor pull-up czyli w zmiennej uint16_t otrzymuję 0xFFFF. Początkowo to wykorzystałem do wykrywania czy czujnik jest czy też się popsuł, przewód urwał itp. Jednak moje czujniki mierzą temperaturę od +25C do -25C a kilka z nich cały czas pracuje w granicach 0 C. Wiec ten sposób odpada czy ktoś zna jakiś inny ?
Czy co sekundę tak jak jest pomiar wydawać polecenie SEARCH ROM i sprawdzać czy identyfikator zapisany w eeprom zgadza się z którymś z odebranych?
- ( instalowanie czujników ) Wykrywanie czujników i zapamiętywanie ich identyfikatorów w pamięci eeprom
- każde kolejne uruchomienie urządzenia już nie wyszukuje urządzeń tylko pobiera identyfikatory z pamięci
- odczyt pomiaru temperatury z kilku czujników co 1 sekundę
Mój problem dotyczy sytuacji podczas pracy programu gdy pomiar wykonywany jest co 1 sekundę i odłączymy czujnik fizycznie. Wtedy otrzymuję temperaturę 0 C -> bo jest stan wysoki wymuszony przez rezystor pull-up czyli w zmiennej uint16_t otrzymuję 0xFFFF. Początkowo to wykorzystałem do wykrywania czy czujnik jest czy też się popsuł, przewód urwał itp. Jednak moje czujniki mierzą temperaturę od +25C do -25C a kilka z nich cały czas pracuje w granicach 0 C. Wiec ten sposób odpada czy ktoś zna jakiś inny ?
Czy co sekundę tak jak jest pomiar wydawać polecenie SEARCH ROM i sprawdzać czy identyfikator zapisany w eeprom zgadza się z którymś z odebranych?