mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Allgemein: Mehrere Eingänge auf einen INT


Autor: Thomas (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe beispielsweise 3 Eingänge, möchte aber dass bei irgendeiner
Änderung der Eingänge ein Interrupt ausgelöst wird. Leider habe ich von
Elektronik nicht zu viel Ahnung :)

Mein aktueller Veruch hab ich als Anhang angehängt, ist leider nur aus
Paint, sollte aber verständlich sein. Das selbe könnt ich mir mit
Transistoren anstann Dioden vorstellen, macht das ein Unterschied?

Nur hat meine "Lösung" ein Problem: Hält man eine Taste gedrückt, und
drückt dann noch eine wird kein Interrupt mehr ausgelöst.

Hoffe mein Problem ist verständlich
Liebe Grüße

Autor: Εrnst B✶ (ernst)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
manche (viele? alle?) AVRs können das schon von Haus aus, such mal nach
Pin-Change IRQ im Datenblatt.

/Ernst

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja stimmt ich kenn das, aber mein mega16 hat das leider nicht. Meint ihr
es lohnt sich gar nicht und ich sollte einen anderen Controller
verwenden?

Gruß

Autor: Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst du mit den Tasten machen?
Im Regelfall ist es sinnvoller sie in einem Timerinterrupt abzufragen
(und gleichzeitig zu entprellen...).

Autor: peter dannegger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Meint ihr es lohnt sich gar nicht und ich sollte einen anderen
Controller verwenden?"


Nein, Du solltest keinen externen Interrupt verwenden.

Kein Mensch drückt Taster nur wenige µs lang, aber Tasten prellen
mehrere ms lang.


http://www.mikrocontroller.net/forum/read-4-310276.html#new


Peter

Autor: Rick Dangerus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau Dir mal die Spannung auf deiner INT-Leitung an, wenn Du mehrere
Tasten drückst. Durch die Dioden hast Du eine ODER-Schaltung.

Um eine Änderung zu registrieren, mußt Du Dir den Tastenstatus merken
und mit dem aktuellen vergleichen.

Für Tasten lohnt es sich generell nicht, einen Interrupt zu
verschenken. Die Bedienung erfolgt so langsam, das ein pollen alle 20ms
reicht.

Außerdem ist es einfacher die Taster zwischen Port und GND zu klemmen,
dann kannst Du den internen Pull-Up nutzen und sparst ein Bauteil.

Rick

Autor: Thomas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ok danke für die Antworten... Ich kann eben nur Programmieren ;)

Also einfach 'nen Timer laufen lassen und den Status zyklisch
überprüfen?

Autor: hans dieter (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ja, bei den internen pull-ups würde ich aber etwas vorsichtig sein, wenn
der kontakt (zum port pin) mit den fingern berührt wird kann es sein,
dass das einen tasten-druck gleich kommt.
(wir sind schöne antennen)

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.