- Labornetzteil AliExpress         
Ergebnis 1 bis 3 von 3

Thema: BASCOM-Fehler oder was?

Baum-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Roboter Experte Avatar von Tido
    Registriert seit
    14.11.2006
    Ort
    OWL
    Alter
    47
    Beiträge
    622

    BASCOM-Fehler oder was?

    Sorry Leute,

    aber ich stehe seit gestern mit meinem Programm auf Kriegsfuß.
    Es wertet das Summensignal eines RC-Empfängers aus.
    Das Problem ist, dass sich die Variable Offset(1) im laufenden Programm ändert, obwohl diese im Code gar nicht vorkommt.
    Die Variable nimmt bei jedem Aus- und Wiedereinschalten der Fernsteuerung einen anderen Wert ein. Hier mal der Code:


    Code:
    $regfile "m32def.dat"
    $framesize = 42
    $swstack = 32
    $hwstack = 32
    $crystal = 16000000
    $baud = 9600
    
    Config Timer0 = Timer , Prescale = 256                      'Timer0 auf 16µs/Takt, Überlauf bei ca. 4ms
    On Timer0 Sync
    Config Int0 = Falling
    Enable Interrupts
    On Int0 Flankenerkennung
    
    Dim Dummy As Byte                                           'enthält die Sync-Zeit
    Dim Kanal(8) As Byte                                        'muss direkt hinter Dummy dimensioniert werden!
    
    Dim Offset(7) As Byte
    Dim Channel As Byte
    Dim Fehler As Byte
    Dim Pruefsumme As Word
    
    Offset(1) = 0
    
    Do
    Gosub Messen
    
    Ausgabe:
    If Fehler > 0 Then
       Print "Datenfehler " ; Fehler
    Else
       Print "  " ; Kanal(1) ; "  " ; Kanal(2) ; "  " ; Kanal(3) ; "  " ; Kanal(4) ; "  " ; Kanal(5) ; "  " ; Kanal(6) ; "  " ; Kanal(7) ; " Offset(1): " ; Offset(1)
    End If
    
    Waitms 25
    Loop
    
    
    Flankenerkennung:                                           'fallende Flanke erkannt
    Kanal(channel) = Timer0                                     'Timerwert in Kanalvariable speichern
    Timer0 = 0                                                  'und Timer zurücksetzen
    Incr Channel                                                'auf den nächsten Kanalspeicher wechseln
    Return
    
    
    Sync:                                                       'Überlauf des Timers durch die Pause im Signal
    Channel = 0                                                 'das Sync-Signal vor dem ersten Kanal
    Fehler = 0                                                  'Fehlerspeicher löschen
    Return
    
    Messen:
    Timer0 = 0                                                  'Timer (Sync) zurücksetzen
    Enable Timer0                                               'und einschalten
    Enable Int0                                                 'Interrupt (Flanke) einschalten
    
    Waitms 40                                                   'Zeit für 2 Messungen
    
    Disable Int0                                                'Interrupt ausschalten
    Disable Timer0                                              'Timer ausschalten
    Channel = 0
    
    Fehlerpruefung:
    
    Pruefsumme = 0
    
    For Channel = 1 To 7
    If Kanal(channel) < 52 Or Kanal(channel) > 132 Then Fehler = Channel       'nur Kanalwerte von 52-132 gültig
    Pruefsumme = Pruefsumme + Kanal(channel)                    'alle Kanäle addieren
    Next Channel
    Pruefsumme = Pruefsumme + Dummy                             'Sync-Zeit zu der Kanalsumme addieren
    If Pruefsumme < 565 Then Fehler = 8                         'nur größere Prüfsumme gültig
    Return
    Ich hänge mal einen Screenshot der Ausgabe an. Bei Datenfehler 8 ist die Fernsteuerung ausgeschaltet.

    Weiß jemand, warum sich der Wert ändert?
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken summensignal.jpg  
    MfG
    Tido

    ---------------------------------------------------
    Have you tried turning it off and on again???
    ---------------------------------------------------

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

fchao-Sinus-Wechselrichter AliExpress