Ich habe einen mega128, und eine Tastenfeld mit 4*4 in verwendung. Das Tastenfeld wird über 8pins an eine kleine Transistorschaltung, und diese dann an den uC angeschlossen. Bei Versuchen, wo nur die Schlatung und die Tastatur an den uC gehaengt waren, hat das ganze super funktioniert. Doch nun habe ich eine komplette Platine entwickelt, und die Tastatur funktioniert so gut wie überhaupt nicht mehr. Die externen Interrupts werden zwar ausgelöst, jedoch liegt am Port, der die Tasten einliest fast immer in falsches Ergebnis an. was kann hier der Fehler sein? Mit softwaremäßiger Tastenentprellung war nichts zu machen.
Und ansonsten kann man zu deinem Problem nichts sagen. Ohne Hard- und Software zu kennen, kann man allenfalls raten.
Also diese ominöse Transistorschaltung und Dein Programm kennt ja keiner, wie soll da jemand helfen ??? Ich nehme immer die Standardschaltung, d.h. die Matrix direkt an Portpins, die internen Pull-Ups aktiviert und dann im Timerinterrupt abgetastet und entprellt, funktioniert astrein. Ist hier doch alles schon 1000-mal durchgekaut worden und in der Codesammlung gibts gute Beispiele dafür. Peter
Hi, bastle auch gerade an einem Tastaturprogramm rum. Hab wie Peter geschrieben hat ebenfalls die Taster direkt an die Port Pins gehängt und Pull-Ups hinzugefügt. (3x4 Matrix) Jetzt bin ich am grübel, wie ich diese Routine am elegantesten Programmiere. Zum Entprellen reicht es doch, wenn ich nach einem Tastendruck eine kleine Wartezeit einfüge, oder? Nur bin ich mir noch nicht im klaren, in welchem Zeitraster ich die Tastatur abfragen soll. Jeder Schleifendurchgeng, ...? Ihr habt was von Timerinterrupt geschrieben; ist dazu ein Interrupt nötig? Wäre da für ein erprobtes Chema dankbar. Hab in der Codesammlung allerdings nichts so passendes gefunden. Rainer
Danke fuer eure Hinweise - das mit dem Entprellen hab ich jetz.. dabei ist das Ganze aber etwas seltsam - ich muss, nach dem der externe Interrupt ausgelöst wurde, ca 3ms warten, bevor ich den PORT einlesen kann, vorher schwanken die Signalpegel herum - hab aber keine Ahnung wieso.
"...hab aber keine Ahnung wieso." ??? Da erkläre bitte mal, was Du unter (Ent-)Prellen verstehst. Peter
das is dann wohl "software" - mäßiges entprellen oder? ich hab ja ne fertige platine.. und ich weiß echt nicht, warum die Signalpegel 1ms nach dem Tastendtuck noch schwanken. ich will jetz nichts mehr an der platine herumlöten - kann es vieleicht sein das die Signalleitungen zu lang sind? ca 20cm
weil das schwanken vielliehct genau das besagte prellen (auf- und zuschwingen) des schalters ist? das warten iste ien lösung ganz sicher aber nicht die beste. verwend mal die suche im forum mit stichworten ala debounce oder entprellen
hm.. ich dachte das entprellen ist ausschalten des interrupts nach dessen auftreten?
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.