|
|
@@ -43,15 +43,20 @@ static void _onewire_scan(void) {
|
|
|
ow_sensor->bus->device_count);
|
|
|
//Сканирование шины one wire
|
|
|
unitemp_onewire_bus_init(ow_sensor->bus);
|
|
|
- unitemp_onewire_bus_enum_init();
|
|
|
- uint8_t* id;
|
|
|
+ uint8_t* id = NULL;
|
|
|
do {
|
|
|
id = unitemp_onewire_bus_enum_next(ow_sensor->bus);
|
|
|
} while(_onewire_id_exist(id));
|
|
|
|
|
|
if(id == NULL) {
|
|
|
+ unitemp_onewire_bus_enum_init();
|
|
|
id = unitemp_onewire_bus_enum_next(ow_sensor->bus);
|
|
|
- if(id == NULL || _onewire_id_exist(id)) {
|
|
|
+ if(_onewire_id_exist(id)) {
|
|
|
+ do {
|
|
|
+ id = unitemp_onewire_bus_enum_next(ow_sensor->bus);
|
|
|
+ } while(_onewire_id_exist(id) && id != NULL);
|
|
|
+ }
|
|
|
+ if(id == NULL) {
|
|
|
memset(ow_sensor->deviceID, 0, 8);
|
|
|
ow_sensor->familyCode = 0;
|
|
|
unitemp_onewire_bus_deinit(ow_sensor->bus);
|