Witam
Wykonałem układ elektroniczny którego zadaniem jest pomiar napięcia na porcie adc.
Zadaniem kodu który jest poniżej jest wykrycie stanu wysokiego na porcie PA(6) i pomiar napięcia z portu PA(0) według odpowiedniej instrukcji czyli pomiar trzykrotny, porównanie ich ze sobą i jeżeli są takie same to ma włączyć się dioda czerwona, oraz włączyć przekaźnik podpięty do portu PA(7) i pokazać napis. Problem jest taki że po ustawieniu stanu wysokiego na PA(6) program nie wykrywa go, lecą napisy początkowe do momentu napisu START i wraca do początku programu itd. Nie podłączałem nic do portu PA(0) bo chyba bez tego da sie tez sprawdzić czy to działa?
Nie wiem co jest nie tak z tym kodem, poprawiałem go już kilka razy i nadal to samo:l
Poniżej kod programu:
Wykonałem układ elektroniczny którego zadaniem jest pomiar napięcia na porcie adc.
Zadaniem kodu który jest poniżej jest wykrycie stanu wysokiego na porcie PA(6) i pomiar napięcia z portu PA(0) według odpowiedniej instrukcji czyli pomiar trzykrotny, porównanie ich ze sobą i jeżeli są takie same to ma włączyć się dioda czerwona, oraz włączyć przekaźnik podpięty do portu PA(7) i pokazać napis. Problem jest taki że po ustawieniu stanu wysokiego na PA(6) program nie wykrywa go, lecą napisy początkowe do momentu napisu START i wraca do początku programu itd. Nie podłączałem nic do portu PA(0) bo chyba bez tego da sie tez sprawdzić czy to działa?
Nie wiem co jest nie tak z tym kodem, poprawiałem go już kilka razy i nadal to samo:l
Poniżej kod programu:
Config Porta = &B10111110
Porta = &B00100010 'port PA(6)
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim W1 As Word
Dim W2 As Word
Dim W3 As Word
W1 = 0
W2 = 0
W3 = 0
cls
Cursor Off
Lcd "START"
Wait 5
If Porta.6 = 1 Then
Porta.5 = 0 'zapala się dioda LED żółta
Cls 'przekaźnik wykrywa 230V i pojawia się stan wysoki
Lcd "WYKONUJE POMIARY"
Lowerline : Lcd Spc(4) ; "Czekaj..."
Do
Wait 2
Display Off
Wait 2
Display On
Loop
W1 = Getadc(0) 'wykonaj pierwszy pomiar
Wait 10 'czekaj 10 sekund
W2 = Getadc(0) 'wykonaj drugi pomiar
Wait 10
W3 = Getadc(0)
If W1 <= W2 Or W2 <= W3 Then
Porta.7 = 1
Porta.1 = 0 'zapala się czerwona dioda LED
Cls
Lcd Spc(5) ; "BRAK ZMIAN"
Lcd Spc(4) ; "CIŚNIENIA"
End If
End If