DS18B20 Jak to przypisać do IF ...

To forum jest dla wszystkich pasjonatów mikrokontrolerów AVR Atmela. Wymiana doświadczeń i pomoc dla początkujących w pisaniu programów zarówno w C, Asemblerze jak i BASCOM. Zapraszam znawców tematu, aby pomogli wszystkim początkującym!
ODPOWIEDZ
KLIWAT5
-
Posty: 24
Rejestracja: 30 gru 2007, 9:30
Lokalizacja: WLKP

DS18B20 Jak to przypisać do IF ...

Post autor: KLIWAT5 » 13 paź 2008, 15:49

Witam
Mam taki problem z przypisaniem odpowiedniej wartości do If ??? > 28 then ???
Oto fragment programu z pomiarem temperatury DS18B20

Kod: Zaznacz cały

1wreset              
1wwrite &H55         
1wverify Dsid1(1)     
1wwrite &HBE          
Twew1 = 1wread(2)    
'---------------------------------
 Waitms 100

   Twew1 = Twew1 * 10    'temperatura  przeliczanie dodatniej i ujemnej 
   Twew1 = Twew1 / 16

If Twew1 > 0 Then    
   Ss = Str(twew1)
   Ss = Format(ss , "  0.0")
   Locate 1 , 1       
   Lcd "T w aucie " ; Ss ; Chr(0) ;
Else
   Ss = Str(twew1)
   Ss = Format(ss , " 0.0")
   Locate 1 , 1      
   Lcd "T w aucie " ; Ss ; Chr(0) ;
End If
Pomiar i wskazania na LCD są poprawne i wszystko działa OK
--------------------------------------------------------------------------------------------------
A od tej linii chciałbym przypisać dodatkowe komunikaty zgłaszane na LCD odnośnie wskazywanej temperatury i tak np:

Kod: Zaznacz cały

If Twew1 > 28 Then    'jeżeli temperatura jest większa niż 28 stopni to 
  Lcd "JEST ZA CIEP" ; Chr(5) ; "O W AUCIE  " ; Ss ; Chr(0);
End If
Mam problem ze zmienną Twew1 bo temperatura jest np 23 stopnie C a ten komunikat też się zgłasza
Myślałem że powinienem zamiast Twew1 zastosować zmienną Ss ale kompilator wywala błą a zdeklarowana jest jako

Kod: Zaznacz cały

Dim Twew1 As Integer     Dim Ss As String * 6
___________________________________________________
kody źródłowe proszę umieszczać w znacznikach

Kod: Zaznacz cały

spark[/size][/color]
Ostatnio zmieniony 15 paź 2008, 18:02 przez KLIWAT5, łącznie zmieniany 1 raz.

Awatar użytkownika
kayron
Użytkownik
Posty: 2088
Rejestracja: 21 wrz 2008, 12:53
Lokalizacja: Poland
Kontakt:

Post autor: kayron » 15 paź 2008, 16:07

A możesz napisać jaki komunikat? wystarczy nr błędu.

KLIWAT5
-
Posty: 24
Rejestracja: 30 gru 2007, 9:30
Lokalizacja: WLKP

Post autor: KLIWAT5 » 15 paź 2008, 18:30

Witam
Sam doszedłem do rozwiązania tego problemu czyli:
If Twew1 > 28 Then ..... było napisane a powinno być If Twew1 > 280 Then .....
Bo zmienna odczytana z DS18B20 wynosi właśnie 280 a Ss wynosi po przeliczeniach 28,0
przy temperaturze 28 stopni C
Zamykam temat dziękuję za zainteresowanie.

ODPOWIEDZ