Forum: Mikrocontroller und Digitale Elektronik wenn der interrupt 2 mal klingelt


von erik (Gast)


Lesenswert?

hallo zusammen,

wie immer gibts problem...
...ich versuche krampfhaft in meiner interrupt routine
alle weiteren auftretentend interrupts zu löschen,
aber dies klappt nicht, auf jedenfall nicht so wie ich es mir
vorstelle.

intitialisieren wir das ganze mit:
MCUCR = _BV(ISC01);
GIMSK = (1<<INT0);

SIGNAL(SIG_INTERRUPT0)
{
    GICR &= ~(_BV(INT1));
    GIMSK = (0<<INT0);
.....hier kommt dann noch ein delay
...... und am ende
    GIMSK = (1<<INT0);
    GIFR  = (1<<INTF0) ;
    GICR |= _BV(INT0) ;
}

so meine frage ist nun wie kann ich die während der interruproutine
aufgetretenen interrupts sicher löschen?

von Aleksej Kiselev (Gast)


Lesenswert?

GIMSK und GIFR am Ende umtauschen?

von Jürgen Schuhmacher (Gast)


Lesenswert?

Was heisst denn da "Delay"?  Ein D. in einer ISR?

von Lutz Müller (Gast)


Lesenswert?

Hallo, mit
GIMSK = (0<<INT0);
setzt Du das ganze GIMSK auf Null. War das so beabsichtigt? Wenn ja,
kannst Du auch gleich
GIMSK = 0;
schreiben.
Gruß
Lutz

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.