mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Verständnisfrage zu Interrupts


Autor: tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Sonic (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei den AVRs kannst du Flanken- und Pegelgesteuerten Interrupt auslösen. 
Schau dir mal ein Datenblatt an, da steht's haarklein drin!

Autor: tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Supi, vielen Dank, verständnisproblem beseitigt!

Grüße

tobi

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.