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







Zitieren

Lesezeichen