Die brennende Frage ist ja wie es die Variable "Licht" schafft scheinbar ihren Wert zu ändern.
Hab da ne Vermutung
Ich hab die Hauptschleife mal etwas umgebaut und einen Index für die ausgaben geschaffen damit man sieht welcher Wert zu welcher Runde gehöhrt.
Das Label "Ende" hab ich mal rausgenommen weils nirgends genutzt wurde.
Zusätzlich hab ich noch die Wartebefehle der Hauptschleife auf Waitms umgestellt weil man damit feiner dosieren kann und in eine zusätzliche Verzögerung von 300ms eingesetzt.
An der Sub hab ich nix gemacht.
Probier das mal aus und schau ob es immernoch unregelmäßigkeiten gibt.
Code:
$regfile = "m8def.dat "
$crystal = 3686400
Config Portc = &B00110100 'Ausgangs Eingangszuweisung
Portc.0 = 1 'Pull Up
Portc.1 = 1
Funkzu Alias Pinc.0 'Alias
Zuendung Alias Pinc.1 'alias
'Led Alias Portc.2 'alias
'Helligkeit Alias Pinc.3 'alias'
Relais_ldr Alias Portc.4 'Alias
Relais Alias Portc.5 'Alias
Dim Licht As Integer
Dim Helfer As Integer
Dim Index As Word
Declare Sub Ausgang
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
index = 0
Do
Licht = Getadc(3)
Print index ; "Licht1: " ; Licht
Waitms 1000
If Zuendung = 1 Then
Print "zuendung aus!!!" 'Abfrage ob zündung an ist
Print index ; "Licht2: " ; Licht
Print
Waitms 1000
If Funkzu = 0 Then 'abfrage ob das ZV signal anliegt
Print "Zuendung aus und Funk Signal erhalten!!!"
Print index ; "Licht3: " ; Licht
Waitms 1000
Ausgang
End If
End If
Waitms 300
Incr index
Loop
End
Sub Ausgang
Set Relais
Print "Relais ohne LDR: " ; Relais
Print index ; "Licht4: " ; Licht
Wait 1
If Licht < 200 Then
Print index ; "Licht5: " ; Licht
Wait 1
End If
Neustart:
For Helfer = 0 To 60
Wait 1
If Funkzu = 1 Then Helfer = 0
Print "Istzeit: " ; Helfer
Print index ; "Licht6: " ; Licht
Next
Reset Relais
Print "Relais ohne LDR: " ; Relais
Reset Relais_ldr
Print "Relais mit LDR: " ; Relais_ldr
Wait 1
End Sub
Lesezeichen