Napisałem program do woltomierza i amperomierza i tu wszystko jest ok.
Chciałem jeszcze dodać wskaźnik napięcia na kilku diodach i tu mam problem.
Miało to wyglądać tak że gdy napięcie będzie większe niż 1V to na porcieX.Y pojawi się stan niski, gdy napięcie będzie większe od 2V wtedy stan niski na następnym pinie itd.
Problem polega na tym że cały czas mam podawany stan niski na pinie i jest on niezależnie od tego czy warunek jest spełniony czy nie.
Gdy w warunku zamiast portb.0=0 dam toggle portb.0 to po spełnieniu warunku dioda podpięta pod ten pin zaczyna mrugać.
Proszę o wskazanie problemu.
Kod: Zaznacz cały
$regfile = "m8def.dat"
$crystal = 16000000
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Portd.2 , Db5 = Portd.3 , Db6 = Portd.4 , Db7 = Portd.5 , E = Portd.1 , Rs = Portd.0
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Wart_ac1 As Word
Dim V1 As Single
Dim Wart_nap As String * 4
Dim Wart_ac2 As Word
Dim V2 As Single
Dim A as single
Dim Wart_prad As String * 4
Start Adc
config portb=output
config portb=1
Cls
Do
'Woltomierz
Wart_ac1 = Getadc(1)
Upperline
V1 = Wart_ac1 * 0.0049
Wart_nap = Fusing(v1 , "#.&&&")
Lcd Wart_nap ; "[V]" ; Spc(9)
if wart_ac1 > 205 then
portb.0=0
end if
'Amperomierz
Wart_ac2 = Getadc(2)
Lowerline
V2 = Wart_ac2 * 0.0049
A=V2/0.47 '0.47 - wartość rezystora pomiarowego
Wart_prad = Fusing(A , "#.&&&")
Lcd Wart_prad ; "[A]" ; Spc(9)
Loop
End