Witam. Napisałem prosty programik na atmege8 i lcd 16*2 do pomiaru temperatury silnika i prędkości obrotowej , wszystko działa ok ale chciałbym dodać jeszcze parę rzeczy w postaci ze jeśli obroty silnika przekroczyłyby np: 3000 rpm to wyświetliłby się komunika "zbyt wysokie obroty" lub coś w tym stylu bądz temp. przekroczy 110 st.C to "wysoka temp silnika" . Zapewne chodzi o zastosowanie jakiegoś warunku , próbowałem różnie ale jakoś mi to niezbyt wychodzi . Moja prośba to czy któryś z kolegów mógłby mi pokazać jakiś przykład (proszę o wyrozumiałość uC bawię się dopiero od tyg.) pozdrawiam
Kod umieszczamy w tagach [code] , a nie [b] - poprawiłem.
[zumek]
$regfile "m8def.dat"
$crystal = 8000000
Config Lcdpin = Pin , Db4 = Portc.0 , Db5 = Portc.1 , Db6 = Portc.2 , Db7 = Portc.3 , E = Portc.5 , Rs = Portc.4
Config Lcd = 16 * 2
Dim Wynik As Long
Dim Odczyt(2) As Byte , A As Byte , Licznik As Byte , T As Integer , T1 As Single , Napis As String * 5
Config 1wire = Portd.4
Config Timer1 = Counter , Edge = Rising
Cursor Off
Cls
Lcd " Obrotomierz "
Locate 2 , 2
Lcd " Termometr "
Wait 2
Cls
Lcd " Zapnij pasy "
Locate 2 , 1
Lcd " Wlacz swiatla "
Wait 2
Deflcdchar 1 , 12 , 18 , 18 , 12 , 32 , 32 , 32 , 32 ' replace ? with number (0-7)
Do
Timer1 = 0
Start Timer1
Waitms 500
Stop Timer1
Wynik = Timer1 * 120
1wreset
1wwrite &HCC
1wwrite &H44
Waitms 750
1wreset
1wwrite &HCC
1wwrite &HBE
Odczyt(1) = 1wread(2)
T = Odczyt(2)
Shift T , Left , 8
T = T + Odczyt(1)
T1 = T * 0.0625
Napis = Fusing(t1 , "#.#")
Cursor Off
Cls
Locate 1 , 1
Lcd "Vdo " ; Wynik ; " obr/min"
Locate 2 , 1
Lcd "Temp " ; Napis ; " " ; Chr(1) ; "C"
Loop
EndKod umieszczamy w tagach [code] , a nie [b] - poprawiłem.
[zumek]