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
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
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
Bitte melde dich an, um einen Beitrag zu schreiben.