Störungen bei 4*4 Tastatur

Gast #111100
Lesenswert?
• ▲
▼
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.
#111103
Lesenswert?
• ▲
▼
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
Gast #111104
Lesenswert?
• ▲
▼
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
Gast #111106
Lesenswert?
• ▲
▼
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.
Gast #111108
Lesenswert?
• ▲
▼
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
Gast #111109
Lesenswert?
• ▲
▼
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

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.