Witam. Zbudowałem termometr w oparciu o DS18b20.
Chciałbym zapisywać co 1200 pomiar do tablicy 3-elementowej.
Po zapełnieniu tablicy 3 pomiarami:
pierwszy pomiar = 1 element tablicy
drugi pomiar = 2 element tablicy
trzeci pomiar = 3 element tablicy
chciałbym porównać wartości i sprawdzić, czy temperatura wzrosła, czy spadła. Wszystko wydaje się proste, aż do momentu gdy dochodzimy do 4 pomiaru. w tym momencie musimy :
drugi pomiar postawić na miejsce pierwsze,
trzeci pomiar na miejsce drugie
i aktualny pomiar na miejsce trzecie.
Generalnie przesuwany elementy tablicy w lewo.
Jak coś takiego napisać?
Tutaj fragment mojego dotychczasowego kodu:
Chciałbym zapisywać co 1200 pomiar do tablicy 3-elementowej.
Po zapełnieniu tablicy 3 pomiarami:
pierwszy pomiar = 1 element tablicy
drugi pomiar = 2 element tablicy
trzeci pomiar = 3 element tablicy
chciałbym porównać wartości i sprawdzić, czy temperatura wzrosła, czy spadła. Wszystko wydaje się proste, aż do momentu gdy dochodzimy do 4 pomiaru. w tym momencie musimy :
drugi pomiar postawić na miejsce pierwsze,
trzeci pomiar na miejsce drugie
i aktualny pomiar na miejsce trzecie.
Generalnie przesuwany elementy tablicy w lewo.
Jak coś takiego napisać?
Tutaj fragment mojego dotychczasowego kodu:
$regfile = "attiny2313.dat" 'ATTINY2313
$crystal = 16000000 'Nasz kwarc to 16Mhz
Config Lcd = 16 * 2 'Typ wyświetlacza
Config Lcdpin = Pin , Db4 = Portd.3 , Db5 = Portd.2 , Db6 = Portd.1 , Db7 = Portd.0 , E = Portd.4 , Rs = Portd.5 'Ustawienia pinów wyświetlacza
Deflcdchar 0 , 6 , 9 , 9 , 6 , 32 , 32 , 32 , 32 'Znak stopnia Celsjusza
Config 1wire = Portb.0 'Wskazanie magistrali 1Wire
Dim Temp As Integer , Napis As String * 6 'Zmienne
Dim Licznik As Integer
Dim Pomiar(3) As Integer
Dim Index_tab As Integer
Cursor Off 'Wyłączenie kursora na wyswietlaczu
Cls 'Wyczyszczenie wyświetlacza
Pomiar(1) = 0
Pomiar(2) = 0
Pomiar(3) = 0
Index_tab = 1
Licznik = 0
Do 'Petla nieskonczona
1wreset 'Reset 1Wire
1wwrite &HCC 'Komenda Skip ROM (poniewaz mamy podlaczony tylko jeden czujnik)
1wwrite &H44 'Komenda konwersji temperatury
Waitms 750 'Trwa konwersja
1wreset 'Reset 1Wire
1wwrite &HCC 'Komenda Skip ROM (poniewaz mamy podlaczony tylko jeden czujnik)
1wwrite &HBE 'Odczyt (Read Scratchpad)
Temp = 1wread(2) 'Odczyt 2 bajtów dotyczacych temp.)
Temp = Temp * 10 'Konwersja do stopni Celsjusza
Temp = Temp / 16
Incr Licznik
If Licznik = 1200 Then
Pomiar(index_tab) = Temp
Incr Index_tab
Licznik = 0
End If
Napis = Str(temp) 'Napis = łańcuch znakow ze zmiennej temp.
Napis = Format(napis , " 0.0") 'wstawienie Kropki W Formacie Wyświetlanej Temp. "
Locate 1 , 1 'Ustaw kursor w 1 wierszu i 1 kolumnie wyświetlacza
Lcd " Temperatura: " 'wypisz : Temperatura "
Locate 2 , 1 'Ustaw kursor w 1 wierszu i 1 kolumnie wyświetlacza
Lcd " " ; Napis ; " " ; Chr(0) ; "C " 'Wypisanie temperatury
Loop 'Koniec petli nieskonczonej
End 'Koniec