-
        

Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 20

Thema: Fehler bei Programmabarbeitung

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216

    Fehler bei Programmabarbeitung

    Anzeige

    Hallo,
    bei meiner Anwendung tritt ein merkwürdiges Problem auf: Ich lese einen Bild-/Bewegungssensor mit einem Mega8 aus, dabei gibt es 2 Modi: Modus=1 -> Bewegungsdaten über RS232 an PC schicken, Modus=2 -> Bilddaten an PC schicken. Nach dem Flashen des Controllers ist der Modus 1 aktiv und alles läuft fehlerfrei. Auch das Umschalten in den Modus 2 läuft und der Sensor liefert mir Bilder an den PC. Ich kann es mir nach unzähligen Versuchen nicht mehr erklären, aber das erneute Umschalten in den Modus 1 geht nicht. Das Zeichen kommt über die RS232 definitiv an, aber scheinbar wird das Hauptprogramm nicht mehr abgearbeitet oder der Timer liegt lahm!?!
    Ich hoffe, jemand kann mir helfen, danke.

    Hier ein Ausschnitt aus meinem Code:
    Code:
    Do
        If Modus = 2 Then
            Call Get_picture()
            Call Send_picture()
          Else
            Printbin Abspos_x ; Abspos_y ; Squal ; Motion ; Maximumpixel ; 13 ;
        End If
    Loop
    
    '###############################################
    
    'Timer-Routine zur Abfrage der Sensor-Werte mit etwa 6kHz
    Ontimer:
        If Modus = 1 Then
            Call Read_motion()
        End If
        Timer1 = 65430
    Return
    
    '###############################################
    
    'Interrupt für den Zeichenempfang
    Onrts:
        Modus = Udr
        If Modus = 0 Then
            Abspos_x = 0
            Abspos_y = 0
            Modus = 1
        End If
        If Modus = 1 Then Toggle Portb.1
        If Modus = 2 Then Toggle Portb.0
        Set Reset_chip
        Waitms 300
        Reset Reset_chip
        Wait 1
        Set Ncs
    Return

  2. #2
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Bist du sicher, daß der PC werte die 0, 1 u. 2 schickt und nicht
    Ascii '0', '1' od. '2' ?
    da haut der Vergleich nie hin
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  3. #3
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Nein, das stimmt garantiert, habe die Werte zurückgeschickt und die kommen auch an. Des Weiteren habe ich bei Ankunft der Zeichen bestimmte Ports getoggelt und daran sieht man ja auch, dass es klappt. Hast Du sonst noch eine Idee? Ich kann einfach keinen Fehler finden...

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Der Controller soll die Bewegungsdaten sehr oft (ca. 6kHz) abfragen und aufsummieren. Nur wenn er Zeit hat, soll er sie an den PC schicken, deswegen habe ich das Senden der Daten in die Hauptschleife und nicht in den Timerinterrupt gepackt.

  5. #5
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Bevor du nach "DO" kommst, welchen Wert hat da Modus ?
    Setzt du den vorher auf 1 ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  6. #6
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    02.03.2005
    Ort
    OWL
    Beiträge
    216
    Ja, ich habe vorher eine kleine Initialisierung, ich setze vor Programmbeginn Modus auf eins, deswegen läuft die Übertragung der Bewegungsdaten direkt nach dem Flashen.

  7. #7
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Ich seh so auch nix. Es stehen Get_picture & send_picture in Verdacht.
    Sprechen die Toggles in gewünschter Weise an ?
    mfg robert
    Wer glaubt zu wissen, muß wissen, er glaubt.

  8. #8
    Super-Moderator Robotik Visionär Avatar von PicNick
    Registriert seit
    23.11.2004
    Ort
    Wien
    Beiträge
    6.836
    Noch was: Wenn du wieder in den Mode 1 schalten willst, was macht er da ? bleibt er beim Bilder senden oder stellt er den Betrieb überhaupt ein ?

  9. #9
    Gast
    Ich dachte auch erst, es würde an Get_picture oder Send_picture liegen, allerdings konnte ich den Fehler ausschließen. Die Toggles reagieren so wie sie sollen. Auf Deine zweite Frage: von Mode 1 auf 2 geht, aber nicht zurück, er scheint einfach stehen zu bleiben, als würde er sich aufhängen.
    Ist es eigentlich ein Unterschied, wo ich die Hauptschleife des Programms platziere? Wenn die die Hauptschleife ans Ende meines Codes stelle, arbeitet das Programm völlig anders!

    Trotzdem erstmal Dnake für Deine Hilfe...

  10. #10
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    11.04.2005
    Beiträge
    1.469
    Hi,
    ich hatte schon Probleme, wenn der END Befehl nicht nach der Hauptschleife kommt.
    Probiere doch mal das END direkt hinter dein Loop zu setzen.:

    Do
    ...

    Loop
    END

    Danach die Subs



    Gruß
    Christopher

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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