Witam.
Napisałem obsługę 2 termometrów DS18B20 w Bascomie. Wszystko ładnie działa, ale...
W procedurze trzeba chwile poczekać po odczytaniu danych z termometrów.
Wygląda to tak:
Jednak w gotowym programie nie mogę sobie pozwolić na czekanie 1s, więc zrobiłem tak, że w przerwaniu od zegara (co 1s) ustawiam zmienną, i wykorzystuję ją zamiast wait 1
Niestety tak nie działa. Co prawda wyświetla temperaturę, ale tylko z jednego czujnika. Drugi pokazuje 85 stopni.... Czy nie obejdzie się bez tego wait 1? Procek nie może w tym czasie robić innych operacji?
Napisałem obsługę 2 termometrów DS18B20 w Bascomie. Wszystko ładnie działa, ale...
W procedurze trzeba chwile poczekać po odczytaniu danych z termometrów.
Wygląda to tak:
1wreset
1wwrite &H55
1wverify Dsid1(1)
1wwrite &HBE
I1 = 1wread(2)
1wreset
1wwrite &H55
1wverify Dsid2(1)
1wwrite &HBE
I2 = 1wread(2)
1wreset
1wwrite &HCC
1wwrite &H44
Wait 1
Tzewn = I2 / 16
Twewn = I1 / 16
Tw = Fusing(twewn , "#.#")
Tz = Fusing(tzewn , "#.#")
Jednak w gotowym programie nie mogę sobie pozwolić na czekanie 1s, więc zrobiłem tak, że w przerwaniu od zegara (co 1s) ustawiam zmienną, i wykorzystuję ją zamiast wait 1
if sek = 0 then
1wreset
1wwrite &H55
1wverify Dsid1(1)
1wwrite &HBE
I1 = 1wread(2)
1wreset
1wwrite &H55
1wverify Dsid2(1)
1wwrite &HBE
I2 = 1wread(2)
1wreset
1wwrite &HCC
1wwrite &H44
end if
if sek = 1 then
Tzewn = I2 / 16
Twewn = I1 / 16
Tw = Fusing(twewn , "#.#")
Tz = Fusing(tzewn , "#.#")
end if
Niestety tak nie działa. Co prawda wyświetla temperaturę, ale tylko z jednego czujnika. Drugi pokazuje 85 stopni.... Czy nie obejdzie się bez tego wait 1? Procek nie może w tym czasie robić innych operacji?
