Ich möchte bei meinem AVR-Projekt eine Tastatur bauen, bei der bei jedem Tastendruck (also egal welche Taste) zusätzlich ein Hardwareinterrupt ausgelöst wird. Die Interruptroutine soll dann nachschauen, welcher Pin auf LO gesetzt wurde und entsprechend reagieren. Dazu habe ich folgende Schaltung entwickelt - das Problem, sie funktioniert leider nicht so wie sie soll. Taste 1 (ganz links funktioniert aber bei allen anderen werden entweder alle oder irgendwelche Pins ausgelöst und ich verstehe nicht so richtig warum. Man könnte das Problem natürlich umgehen, indem man den Interrupt-Pin durch Optokoppler galvanisch trennt. Das geht auch - habs ausprobiert, mir wäre allerdings eine einfachere Lösung mit Dioden lieber. Kann mir jemand helfen?
Problematisch werden die Flussspannungen der Dioden. Bei 3 Dioden kommen schon ca 2 Volt zusammen, was nicht mehr für definierte Pegel am Interrupt reicht.
Hi
>das Problem, sie funktioniert leider nicht so wie sie soll.
Dann überlege doch z.B. mal, welcher Pegel an P1 anliegt, wenn der 2.
Schalter geschlossen ist.
MfG Spess
Wird P3 gedrückt, werden über die Dioden auch P2 und P1 low gezogen. Ähnlich mit P2 und P1. Spar' Dir die vertikalen Dioden und mache je eine Diode vom Interrupt-Eingang zu jedem der Taster (also Anode aller Dioden gemeinsam an Interrupt, Kathoden an den jeweiligen Taster). Bei einigermaßen aktuellen AVRs kann übrigens jeder Eingangspin einen Interrupt auslösen (PCINT). Deine Mimik wäre dort überflüssig. Also wenn's ein ATmega8 ist, einfach die Altlast entsorgen, auf den ATmega88 umsteigen und die Dioden sparen.
Und an das Entprellen der Tasten denken. Mechanische Kontakte prellen; deswegen verwendet man normalerweise keinen externen Interrupt für Taster (er würde mehrfach ausgelöst), sondern macht die Abfrage (und auch die Entprellung) mit Hilfe eines Timer-Interrupts.
Vielen Dank für die schnelle Antwort, so funktioniert's. Ich dachte allerdings, dass die vertikalen Dioden verhindern, dass P1 und P2 auf LO gezogen werden, was ja offenbar nicht so ist. Da muss ich wohl doch noch mal das eine oder andere Elektronikbuch wälzen ;-)
Nimm besser nen Tmerinterrupt, dann braucht man keine Dioden und das Entprellen fällt mit ab. Peter
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.