Forum: Mikrocontroller und Digitale Elektronik AVR Interrupt Problem


von Juan (Gast)


Lesenswert?

Hallo zusammen,

möchte eine Frage zu Interrupt stellen und zwar, ich habe eine LED, die 
durch den Interrupt Vektor (SIG_EOVERFLOW0) blinken kann. Ich möchte nun 
mit einem Taster, der mit dem externen Interrupt (SIG_INTERRUPT0) 
arbeitet, die LED aus zuschalten.
Bei dem alten Version von WinAvr weiss ich den Unterschied zwischen 
SIGNAL und INTERRUPT, aber im neuen Version von WinAvr werden die beide 
durch ISR() ersetzt. Ich weiss nicht, wie man die beide Interrupt 
gleichzeitig laufen lassen kann.
Es wäre schön, wenn jemand Bescheid mir geben kann, weil ich noch ein 
Anfänger bin.

mfg

Juan

von Stefan E. (sternst)


Lesenswert?


von Peter D. (peda)


Lesenswert?

Juan wrote:

> Bei dem alten Version von WinAvr weiss ich den Unterschied zwischen
> SIGNAL und INTERRUPT, aber im neuen Version von WinAvr werden die beide
> durch ISR() ersetzt. Ich weiss nicht, wie man die beide Interrupt
> gleichzeitig laufen lassen kann.

Wenn Du denkst, das eine hätte mit dem anderen zu tun, dann weißt Du den 
Unterschied zwischen SIGNAL und INTERRUPT doch nicht.

INTERRUPT sollte man nur dann verwenden, wenn man auch weiß, was man 
damit anrichtet. Beim neuen WINAVR kann man das mit ISR(xxx, 
ISR_NOBLOCK) machen.

In Deinem Fall reicht aber ISR völlig.
Einmal der Timerinterrupt für die Blink-LED und einmal der 
Timerinterrupt für die Tastenentprellung.
Man kann natürlich auch beides in den selben Interrupt packen.


Peter

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.