- Labornetzteil AliExpress         
Ergebnis 1 bis 2 von 2

Thema: Programm verlässt Interrupt-Routine nicht

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    06.02.2005
    Beiträge
    663

    Programm verlässt Interrupt-Routine nicht

    Anzeige

    LiFePo4 Akku selber bauen - Video
    Hallo!

    Ich verwende einen ATmega8. Dort habe ich eine Photodiode (gehört zu einer Lichtschranke) am INT0 - Eingang angeschlossen.
    Das Programm soll nun bei steigender Flanke in die Interrupt-Routine springen und nach einmaligem Durchlauf wieder zurück ins Hauptprogramm.
    Leider bleibt es jedoch in der Routine (oder ruft sie immer wieder auf), was ich daran sehen konnte, dass ich zum Test eine Variable auf dem LCD anzeigen lassen habe, welche sich bei jedem Routinendurchlauf erhöht.

    Die relevanten Code-Passagen:
    Code:
    Config Int0 = Rising                                        'Beide Male bei steigender Flanke reagieren
    On Int0 Isr_schranke
    Enable Int0
    
    Enable Interrupts
    
    Portd.2 = 1 'PullUp-Widerstand aktivieren
    Code:
    Isr_schranke:
       Disable Int0
       Waitms 2000
       Koppler = 1 'Koppler steht für PortB.2
       Waitms 1500
       Koppler = 0
       Enable Int0
    Return
    Wüsstet ihr woran es liegen kann?

    Grüße, Björn

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo Björn,

    Wüsstet ihr woran es liegen kann?
    es wäre besser, du würdest den ganzen Code posten. Der Fehler kann auch im für dich als nicht relevant betrtachtetem Teil liegen.

    Warum disablest du den Int0 in der Routine?
    Deine Routine ist durch die Wartezeit sehr lang, dadurch kannst du Ereignisse verpassen.

    Gruß, Michael

Berechtigungen

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

12V Akku bauen