6-fach Tastenarray über AD-Port an PIC -> Brauche Interrupt nach Tastendruck

OP #2464832
Lesenswert?
• ▲
▼
Hi Community, brauche Eure Hilfe!

Habe 6 Tasten über Reihenschaltung von 6 Widerständen am AD-Port des PIC 
16F887 hängen. Alles ok, kann aktuell gedrückte Taste auslesen.

Allerdings möchte ich die Tastatur nicht dauernd über Endlos-Loop 
abfragen, sondern eine Art Interrupt, sobald eine Taste gedrückt wird 
und damit in die Behandlungsroutine springen.
Ich bekomme zwar einen Interrupt von AD-Wandler, aber den bei jeder 
Konversion; das nützt mir nichts.

Folgende Ideen hab' ich:

- Tasten mit 2 Arbeitskontakten verwenden (1. Kontakt mit 
Widerstandsnetzwerk verbunden, 2. Kontakt mit allen anderen in Serie 
gibt Signal, sobald irgendeiner gedrückt wird

- Sobald eine Taste gedrückt wird, die anliegende Teilspannung 
verstärken und auf TTL-Pegel bringen und diesen Impuls über Monoflop als 
Quasi-Interrupt nützen

Habt Ihr noch andere Vorschläge? Verwende übrigens den AD-Wandler, weil 
ich die Porteingänge von PortB für andere zeitkritische Sachen brauche.

Danke für Eure Tipps und ein guter Vorschlag wäre ein super 
Weihnachtsgeschenk für mich!  ;-))

Liebe Grüße
Rudi aus Wien
#2464869
Lesenswert?
• ▲
▼
Rudi H. schrieb:
> sondern eine Art Interrupt, sobald eine Taste gedrückt wird
> und damit in die Behandlungsroutine springen.

Will man eigentlich nicht, zumindest bei größeren Programmen.
Man will ein Tasteneingabe nur an bestimmten sicheren Stellen auswerten, 
an denen eine gerade laufende Aktion abgeschlossen ist.
Man entprellt daher die Tasten im Timerinterrupt und die Auswertung an 
geeigneten Stellen im Main.


Peter
#2464870
Lesenswert?
• ▲
▼
Hey Rudi,

Du könntest den Wert von deinem AD doch an einen Schmitt-Trigger 
heranführen. Da musst du die Kippspannung dementsprechend klein wählen, 
so dass sie deiner kleinsten Teilspannung entspricht.


Eine andere alternative wäre, dass du einen Widerstands-Diodenfriedhof 
einrichteneinrichtest. Dann könntest du einen Spanungsteiler mit 
gemeinsamen Vorwiderstand einrichten.

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.