Witam
Mam taki kod:
Nie ma czwartego czujnika - tylko dodaje 2 stopnie do wskazań tego, który jest u mnie umieszczony na kaloryferze - ale to nie istotne.
Użycie cztery razy funkcji Str powoduje, że wskazania pierwszego wyświetlane są w postaci:
symbol stopnia . cyfra . cyfra symbol stopnia - przy czym cyfry to są wartości temperatury po przecinku z dwóch różnych DS18B20
usunięcie ( zaremowanie ) którejś z funkcji Str ( drugiej lub trzeciej ) powoduje, że pozostałe trzy pozostałe są wyświetlane OK.
Oprócz tych czterech używam w kodzie jeszcze raz funkcji Str ( czyli w sumie pięć razy).
Jest jakiś limit użycia funkcji Str w kodzie programu ?
Mam taki kod:
$regfile = "m328pdef.dat"
$crystal = 14745600
$baud = 9600 ' predkość transmisji
$hwstack = 128 ' rozmiar stosu sprzętowego
$swstack = 128 ' rozmiar stosu programowego
$framesize = 128 ' rozmiar ramki
Do
Locate 3 , 1
Lcd Ss1 ; Chr(0) ; " "
Locate 3 , 10
Lcd Ss2 ; Chr(0) ; " "
Locate 4 , 1
Lcd Ss3 ; Chr(0) ; " "
Locate 4 , 10
Lcd Ss4
Loop
'***************************** Pomiar temperatury
Sub Pomiar
Disable Interrupts
'********************* odczyt pierwszego DS18B20
1wreset
1wwrite &H55
1wverify Dsid1(1)
1wwrite &HBE
I1 = 1wread(2)
'********************* odczyt drugiego DS18B20
1wreset
1wwrite &H55
1wverify Dsid2(1)
1wwrite &HBE
I2 = 1wread(2)
'********************* odczyt trzeciego DS18B20
1wreset
1wwrite &H55
1wverify Dsid3(1)
1wwrite &HBE
I3 = 1wread(2)
'********************* konwersja dla wszystkich DS18B20
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
Pcf_out = &B01111111 ' stan niski wyjścia P5 ( dec = 223 )
Call Pcf_zapis
Enable Interrupts
Licznik_ds = 0
'***************************** Obliczanie temperatury
'********************* Obliczenia dla pierwszego
I1 = I1 * 10
I1 = I1 / 16
Ss1 = Str(i1)
Ss1 = Format(ss1 , " 0.0")
'********************* Obliczenia dla drugiego
I2 = I2 * 10
I2 = I2 / 16
Ss2 = Str(i2)
Ss2 = Format(ss2 , " 0.0")
'********************* Obliczenia dla trzeciego
I3 = I3 * 10
I3 = I3 / 16
Ss3 = Str(i3)
Ss3 = Format(ss3 , " 0.0")
'********************* Obliczenia dla czwartego "wirtulanego
Tmp3 = I1
Tmp4 = Tmp3
' Tmp4 = Tmp4 * 10
' Tmp4 = Tmp4 / 16
Tmp4 = Tmp4 + 20
Ss4 = Str(tmp4)
Ss4 = Format(ss4 , " 0.0")
End Sub
Nie ma czwartego czujnika - tylko dodaje 2 stopnie do wskazań tego, który jest u mnie umieszczony na kaloryferze - ale to nie istotne.
Użycie cztery razy funkcji Str powoduje, że wskazania pierwszego wyświetlane są w postaci:
symbol stopnia . cyfra . cyfra symbol stopnia - przy czym cyfry to są wartości temperatury po przecinku z dwóch różnych DS18B20
usunięcie ( zaremowanie ) którejś z funkcji Str ( drugiej lub trzeciej ) powoduje, że pozostałe trzy pozostałe są wyświetlane OK.
Oprócz tych czterech używam w kodzie jeszcze raz funkcji Str ( czyli w sumie pięć razy).
Jest jakiś limit użycia funkcji Str w kodzie programu ?