Verständnisfrage zu Interrupts

Gast #450865
Lesenswert?
• ▲
▼
Guten Abend,

ich würde gerne wissen, ob man eine Schalterstellung pes Interrupt 
abfragen kann.

Folgendes virtuelles Szenarion, um polling zu umgehen:

Ich habe einen Schalter an einem Port. Nun schalte ich den Schalter ein 
(High-Signal am Pin x). Jetzt soll ein Interrupt ausgelöst werden, der 
eine bestimmte Sache macht (z.B. einen anderen Pin auf High-Pegel 
setzen).

Nun würde ich gerne ebenlalls in die gleiche INT-Routine springen, wenn 
der Schalter ausgeschaltet wird (also abfallende Flanke).

Also ergibt sich folgende Fragestellung: Wenn ich den Schalter 
einschalte, wird durch die ansteigende Flanke ein Interrupt ausgelöst. 
Kann nun innerhalb dieser Routine das auslösen des selben Interrupts auf 
"fallende Flake" umgestellt werden?

Bitte nur dieses Szenario kommentieren (nicht über Zweck nachdenken :-)
Also kein Taster sondern ein Schalter.

Danke und Grüße

tobi
Gast #450867
Lesenswert?
• ▲
▼
Falls du einen AVR (ATmega oder ATtiny) hast, dann musst du nichts 
umdrehen. Du kannst die INT-Routine bei beiden Flanken auslösen, muss 
nur im richtigen Register (MCUCR glaub' ich) definiert werden. 
Entprellung nicht vergessen!
Gast #450874
Lesenswert?
• ▲
▼
Also kann nach auslösen der Int.Routine das High-Signal bestehen 
bleiben, ohne die Routine ständig auszulösen?

War mir nicht sicher, ob es statisch oder Flankengesteuert wird, so ein 
Interrupt.

Danke und liebe Grüße

tobi
#451084
Lesenswert?
• ▲
▼
tobi wrote:

> ich würde gerne wissen, ob man eine Schalterstellung pes Interrupt
> abfragen kann.

Ja, aber nicht mit dem externen Interrupt, sondern nur mit dem 
Timerinterrupt.

Der Grund ist, daß Schalter prellen, d.h. bei nem externen Interrupt 
würdest Du nur so mit Interrupts zugeballert, was äußerst selten 
erwünscht sein dürfte.

Im Timerinterrupt (etwa alle 5..50ms), akzeptierst Du nur dann nen 
Zustand, wenn er mindestens zweimal gleich war und der Schalter ist 
entprellt.


Peter

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.