-         

Ergebnis 1 bis 6 von 6

Thema: doppelte Auführung der ISR

  1. #1
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601

    doppelte Auführung der ISR

    Anzeige

    Hi,

    wie der Name schon sagt habe ich ständig einen Doppel Interrupt an den
    Interruptpins, d.h. wenn ich einen Taster drücke wird die ISR ausgeführt
    danach direkt noch mal, ohne das der Taster dedrückt ist. Hier mal mein
    Code:

    Code:
    $regfile = "m8def.dat"
    $crystal = 14745000
    $baud = 115200
    
    Portd.3 = 1
    
    Config Int1 = Falling
    On Int1 Take Nosave                                         'Nosave
    Enable Int1
    Enable Interrupts
    
    Do
    
    Loop
    
    Take:
       Print "h"
       Waitms 1000
    Return
    
    End
    Grüße Furtion

  2. #2
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    sind die Taster entprellt?
    (Ich hasse zwar Bascom, aber afaik gibt es einen Entprellfunktion. Glaube die heiß debounce)...

  3. #3
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.05.2005
    Alter
    26
    Beiträge
    601
    Hi,

    der Eingang ist nicht entprellt, wobei es sich dabei eigendlich gar nicht um
    einen Taster handelt sondern um das TxD Signal, dass in der ISR ausgelesen
    wird, ich hatte das hier nur noch zur Vereinfachung mit nem Taster. Ich
    vermute ja dass sich der Mega8 merkt das noch ein Interrupt vorliegt, und
    den dann darauffolgend ausführt. Wenn das so ist müsste man das iwie
    wieder auf 0 setzen...
    Grüße Furtion

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    08.07.2006
    Ort
    Karlsruhe/München
    Alter
    27
    Beiträge
    587
    Du kannst ein Interruptanfrage löschen, wenn du die Interterruptflag clearst.

  5. #5
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    21.06.2008
    Beiträge
    113
    naja, das TxD-Signal ist ja nicht ein Pegel, sondern sieht z.B. so aus
    Code:
        ---    ---    ---    ---    ---
    ---    ---    ---    ---    ---
    Da ist es logisch, das der Interrupt mehrmals auftritt.
    Ich empfehle den URXC-Interrupt zu nutzern, bei dem hast du das Problem nicht.

    MfG

  6. #6
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    13.07.2004
    Ort
    bei Stuttgart
    Alter
    35
    Beiträge
    760
    hoi,
    du musst dann halt in der isr die interrupts abschalten. aber dann verpasst du natürlich die nächsten impulse.
    mfg jeffrey

Berechtigungen

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