Hallo zusammen, ich möchte abfragen ob mehrere Tasten gleichzeitig gedrücktt sind, wenn ja, dann soll eben nix passieren ansonsten wie gehabt. Möchte auch noch einen Interupt auslösen, wenn eine taste gedrückt wird. Habe dazu die Signale über Dioden entkoppelt, müsste funzen oder? Grüße Martin
Danke für die Antwiort, aber hier nochmal zu meiner oberen Frage: Wie kann ich abfragen ob mehrere Tasten gedrückt wurden? Als Beispiel: 5 Taster hängen an einem Port. Wenn mehr als eine gedrückt wurde soll nix weiter passieren, nur wenn eine gedrückt wurde, dann soll entsprechend was passieren. Grüße Martin
5 Tatzen an einem Port ? Was ist das......... Tatzenparallelschaltung ? Sind dann alle gleichberechtigt und nicht einzeln bestimmbar. Lösung : Tatzenmatrix mit mehereren Ports oder Abfrage der Tatzenauswirkung(en)
Der meint doch an 5 Pins eines 8it-Ports 5 Tasten! Müßtest statt einer Bit-Prüfung eine Werte-Prüfung in einem Register oder einer Variablen machen. Weiß ja nicht mit was du progst. Angenommen, Du hast die Tasten/Taster an PortB an PB0 bis PB4. Anstatt die Pins 0 bis 4 zu prüfen ob Pin-wert = 0 eine Werteprüfung in der Form: Wenn keine Taste gedrückt wird, also Pin 0 bis 4 high = 11111 also 31 was man nicht berücksichtigen muß. Taste an Pin 0 gedrückt, also Pin 0 = low = 11110 = 30 als Wertprüfung. Taste an Pin 1 gedrückt, also Pin 1 = low = 11101 = 29 als Wertprüfung. Taste an Pin 2 gedrückt, also Pin 2 = low = 11011 = 27 als Wertprüfung. Taste an Pin 3 gedrückt, also Pin 3 = low = 10111 = 23 als Wertprüfung. Taste an Pin 4 gedrückt, also Pin 4 = low = 01111 = 15 als Wertprüfung. Alle anderen möglichen Werte werden nicht abgefragt und dann bei mehr als einer Taste auch nicht berücksichtigt. Sollte man evtl. mit einer Verzögerung ala längeren Entprellung von 50mS oder so machen wenn möglich. Gruß Andi
Jup, hat mich viel gehelft(Da werden Sie geholfen) Many THX grüße Martin
Hallo Martin, eigentlich wollte ich mit meiner Antwort oben nur andeuten, daß die Usergemeinde, die sich hier im Forum rumtreibt, noch ein paar weiter Informationen benötigt, um Dir sinnvoll helfen zu können. Zumindest in Bezug auf die Anordnung der Tasten kam dann ja auch noch ein Hinweis von Dir, aus dem Andi ableiten konnte, wie Du die Tasten am Mikrocontroller angeschlossen hast. Er wäre noch interessant zu wissen, welchen µC Du einsetzt. Bei der Abfrage mittels Interrupt solltest Du unbedingt darauf achten, das der IRQ-Pin flankengesteuert und pegelgesteuert konfiguriert ist. Sonst kommt der µC aus dem Interrupt nicht raus, solange irgendein DAU eine Taste gedrückt hält. Bei den meisten µC kann man dieses Triggerverhalten umprogrammieren. Gruß, Markus_8051
hallo Markus, Bitte schiebe das auf meine Unerfahrenheit beim posten solcher Sachen! Für mich ist das immer Schwierig mich in die Situation eines Lesers einzufinden. Für alle, die diesen Beitrag lesen, schildere ich hier die gesamte (mittlerweile erfolgreiche) Konfiguration. Ich benutzte einen AT90S2313, mit 4 Tastern an PortB. Die Taster sind pulledUp mit 10K Widerständen und schliessen gegen Masse. Alle 4 Taster gehen mit Dioden entkoppelt auf Int0 vom µC. Der µC ist so konfiguriert daß der Interrupt nur bei fallender Taktflanke ausgelöst wird. Durch die fallende Taktflanke muß ich auch nicht mehr feststellen ob mehr als eine Taste gedrückt ist, weil kein DAU in der Lage sein dürfte bei 4MHz Takt gleichzeitig 2 Tasten zu drücken (und falls doch dürfte es ihm Schwerfallen zu wissen welche er zuerst gedrückt hat ;-))))) Sod, hoffe ich habe net wieder was vergessen ;-))))) Grüße Martin
Vielleicht versuchst Du es einfach einmal mit einer Tastaturentprellung, die nur eine aktive Taste zuläßt. http://www.mikrocontroller.net/forum/read-4-16594.html#16594
Hey Martin, vorbildliche Beschreibung Deines Hardwareaufbaus, weiter so, damit können die User hier doch was anfangen. Prima, daß Du an die Konfiguration des IRQ schon selbst gedacht hast, dann sollte jetzt ja alles laufen. Gruß, Markus_8051
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.