Hallo zusammen, ein echt tolles Forum hier! Ich versuche mich seit einigen Wochen in die Thematik uController einzuarbeiten und stehe gerade bei Interrupts. Koennte mir mal jemand die Unterschiede zwischen - flankengesteuerten Interrupts - pegelgesteuerten Interrupts - und Low-Level Triggered IRQs erklaeren? Wann verwendet man welche und wann koennen welche wie verloren gehen? Danke fuer jede Erklaerung schonmal im Voraus! Gruesse ricci008
Low-Level sowie High-Level Interrupts sind pegelgesteuerte Interrupts. Der Untschied: Beim flankengesteuerten Interrupt löst der Interrupt beim Wechsel von High-auf Low, oder / und beim Low-High Wechsel aus. Und nur dann! Der pegelgesteuerte Interrupt löst bei High, oder Low-Signal aus. Wenn Du ein flankengesteuerten Interrupt verlässt, wird er erst bei der n. Flanke wieder betreten. Beim pegelgesteuerten Interrupt hingegen wird der Interupt nach dem verlassen gleich wieder betreten, wenn der Pegel noch immer anliegt. Du musst also in deiner ISR dafür sorgen, dass der Pegel, der den Interrupt ausgelöst hat, sich wieder ändert. Ein flankengesteuerter Interrupt "könnte" eher verloren gehen, da dieser nur einmal auslöst. VG Fabian
Super, das ging ja schnell! Und was ist der Unterschied zwischen Low- und How-Level Triggered Interrupts?
Richard, Das was Fabian da schrub ist völlig richtig, aber in einem (wichtigen) Detail nicht ganz präzise: >>Beim pegelgesteuerten Interrupt hingegen wird >>der Interupt nach dem verlassen gleich wieder betreten, wenn der Pegel >>noch immer anliegt. Der INT wird nicht wirklich GLEICH wieder betreten, es wird zuvor EIN Befehl des Hauptprogramms abgearbeitet. >>Du musst also in deiner ISR dafür sorgen, dass der >>Pegel, der den Interrupt ausgelöst hat, sich wieder ändert. Ja, oder den INT über ein spezifisches oder globales Flag abschalten. Jochen Müller
Jochen Müller wrote: > Der INT wird nicht wirklich GLEICH wieder betreten, es wird zuvor EIN > Befehl des Hauptprogramms abgearbeitet. Das mag auf AVRs zutreffen, ist aber nicht bei allen Architekturen zwingend.
Super, wieder viel dazugelernt. Ein super Forum, ganz groszes Kompliment!!! Richard.
> Ein flankengesteuerter Interrupt "könnte" eher verloren gehen, da > dieser nur einmal auslöst. Ich würde das eher umgekehrt sehen, denn: Bei einem flankengetriggerten Int wird im Controller ein Flag gesetzt, in dem die Int Anforderung gespeichert bleibt und irgendwann später abgearbeitet werden kann. Bei einem pegelgetriggerten Int kann das Triggersignal dagegen bis zur Auslösung des Int schon wieder inaktiv sein, dann passiert einfach gar nichts.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.