Witam
Napisałem program który w zależności od wartości trzech przetworników A/C ma wysyłać różne napisy przez RS232 , niestety jeden warunek pętli nie wiem dlaczego nie reaguje na zmiany wartości. Zaznaczyłem w programie komentarzem wadliwy fragment. Co jest nie tak ?
Napisałem program który w zależności od wartości trzech przetworników A/C ma wysyłać różne napisy przez RS232 , niestety jeden warunek pętli nie wiem dlaczego nie reaguje na zmiany wartości. Zaznaczyłem w programie komentarzem wadliwy fragment. Co jest nie tak ?
$regfile = "m8def.dat" 'informuje kompilator o pliku
'dyrektyw mikrokontrolera
$crystal = 8000000 'informuje kompilator
'o częstotliwości oscylatora
'taktującego mikrokontroler
$baud = 38400
'LCD
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja wewnętrznego
'przetwornika A/C
Config Portb = Output
Portb = 255
Dim Wart_ac As Word
Dim Wart_ac1 As Word
Dim Wart_ac2 As Word
Dim V As Single
Dim V1 As Single
Dim V2 As Single
Dim Vo As String * 3
Dim Vo1 As String * 3
Dim Vo2 As String * 3
Start Adc 'uruchamia wbudowany przetwornik
Print "Jedz na PRZOD !!! "
Wait 3
Do
Gosub Pobierz
If Wart_ac > 1000 Then
Gosub Wykrywanie
Elseif Wart_ac < 1000 Then
Gosub Czujnik1przeciwnik
Elseif Wart_ac1 < 1000 Or Wart_ac2 < 1000 Then ' ###### ta czesc petli nie reaguje na zmiany w ukladzie ###
Gosub Czujnik12lini
End If
Print
Print ; Wart_ac ; " " ; Wart_ac1 ; " " ; Wart_ac2
Print
Print " " ; V ; " " ; V1 ; " " ; V2
Print
Waitms 100 'opóźnienie 100 ms
Loop 'koniec pętli Do...Loop
End 'koniec programu
Pobierz:
Wart_ac = Getadc(0)
Wart_ac1 = Getadc(1)
Wart_ac2 = Getadc(2)
V = Wart_ac * 0.0049
V1 = Wart_ac1 * 0.0049
V2 = Wart_ac2 * 0.0049
Vo = Fusing(v , "#.&&")
Vo1 = Fusing(v1 , "#.&&")
Vo2 = Fusing(v2 , "#.&&")
Return
Czujnik1przeciwnik:
Portb = &B11111110
Print
Print "Czujnik 1 Wykryto Wroga jazda W Przod"
Print
Return
Wykrywanie:
Portb = &B11111011
Print
Print "Krec w kolo szukam wroga"
Print
Return
Czujnik12lini:
Portb = &B11111101
Print
Print "Wykryto biala linie cala w TYl"
Print
Return
