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