Skip to content

Commit 944cbc8

Browse files
committed
drv_ds1820_simple.c: Fixed incorrect first reading
DS1820_DiscoverFamily() call between OWReset() and OWWriteByte(Pin, COMMAND) causes command to ignore. Closes: openshwprojects#1571
1 parent 5cf9563 commit 944cbc8

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

src/driver/drv_ds1820_simple.c

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -426,6 +426,17 @@ void DS1820_OnEverySecond()
426426

427427
if(g_secondsElapsed % ds18_conversionPeriod == 0 || lastconv == 0) //dsread == 0
428428
{
429+
if(ds18_family == 0)
430+
{
431+
int discovered = DS1820_DiscoverFamily();
432+
if(!discovered)
433+
{
434+
lastconv = -1; // reset lastconv to avoid immediate retry
435+
DS1820_LOG(ERROR, "Family not discovered");
436+
return;
437+
}
438+
}
439+
429440
if(OWReset(Pin) == 0)
430441
{
431442
lastconv = -1; // reset lastconv to avoid immediate retry
@@ -458,17 +469,6 @@ void DS1820_OnEverySecond()
458469
return;
459470
}
460471

461-
if(ds18_family == 0)
462-
{
463-
int discovered = DS1820_DiscoverFamily();
464-
if(!discovered)
465-
{
466-
lastconv = -1; // reset lastconv to avoid immediate retry
467-
DS1820_LOG(ERROR, "Family not discovered");
468-
return;
469-
}
470-
}
471-
472472
DS1820_LOG(INFO, "Starting conversion");
473473
OWWriteByte(Pin, SKIP_ROM);
474474
OWWriteByte(Pin, CONVERT_T);

0 commit comments

Comments
 (0)