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


von Thomas (Gast)


Angehängte Dateien:

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

von Εrnst B. (ernst)


Lesenswert?

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

/Ernst

von Thomas (Gast)


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ß

von Rahul (Gast)


Lesenswert?

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

von peter dannegger (Gast)


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

von Rick Dangerus (Gast)


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

von Thomas (Gast)


Lesenswert?

Ok danke für die Antworten... Ich kann eben nur Programmieren ;)

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

von hans dieter (Gast)


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)

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
Noch kein Account? Hier anmelden.