www.mikrocontroller.net

Forum: Compiler & IDEs Pin Change Interrupt mit steigender Flanke


Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich möchte dass meine interrupt-routine nur bei steigender flanke
ausgeführt wird. bei fallender soll nichts passieren.
das eingangssignal kann/ist zu kurz um einfach in der interruptroutine
den pin auf high oder low abzufragen...

hat jemand einen vorschlag?

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn das Eingangssignal zu kurz ist, dann braucht's dich doch
nicht kümmern, welche der beiden Flanken getriggert hat.  Oder
was verstehe ich daran nicht?

Ich denke nicht, dass du beim pin change interrupt großartig was
festlegen kannst, dafür müsstest du einen ,,richtigen'' externen
Interrupt benutzen.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
der benutzer kann aber "den schalter" der den pci steuert selbst
drücken. drückt er ihn kurz-> kein problem;
drückt er ihn lang -> fallende flanke wird erkannt und pci ausgelöst...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist sowieso eine schlechte Idee, mechanische Schalter über
externe oder Pinchange-Interrupts abzufragen.  Die fragt man
mit einem Timer ab, da man die sowieso entprellen muss.

Ansonsten: schalt' doch den pinchange interrupt im Handler
erstmal aus (und durch einen Timer wieder an).  Wenn's wirklich
so kurz gewesen ist, dass er beide Flanken vor der Interrupt-
annahme hatte, isses egal, ansonsten verhinderst du den Interrupt
auf der fallenden Flanke.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> der benutzer kann aber "den schalter" der den pci steuert selbst
> drücken.

Ist der denn entprellt? Sonst bekommst du eh mehrere Flanken.

> drückt er ihn kurz-> kein problem;

Da müßte er aber sehr kurz drücken.

> drückt er ihn lang -> fallende flanke wird erkannt und pci
> ausgelöst...

Mal angenommen, du redest von AVR: Warum weichst du nicht auf einen
Interrupt-Eingang aus? Bei dem ist einstellbar, worauf er triggert.

Autor: Andreas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
streng genommen ist es ein touch panel, von dem nur kooerdinaten gelesen
werden sollen, wenn es auch gedrückt ist...


>Mal angenommen, du redest von AVR: Warum weichst du nicht auf einen
Interrupt-Eingang aus? Bei dem ist einstellbar, worauf er triggert.

davon rede ich zwar. möchte/kann keinen externen interrupt benutzen...

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann nimm doch einen Timer.  Zum Entprellen brauchst du den
wohl auch bei einem touch panel ohnehin.

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.