www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Störungen bei 4*4 Tastatur


Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: michi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi,
Sind die Singal-Pegel der Tasten ausreichtent dimensioniert?
mfg

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und ansonsten kann man zu deinem Problem nichts sagen. Ohne Hard- und
Software zu kennen, kann man allenfalls raten.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Rainer (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hier ein Beispiel für eine 3*8 Matrix:

http://www.mikrocontroller.net/forum/read-4-20511.html


Peter

Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...hab aber keine Ahnung wieso."

???

Da erkläre bitte mal, was Du unter (Ent-)Prellen verstehst.


Peter

Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Buchmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hm.. ich dachte das entprellen ist ausschalten des interrupts nach
dessen auftreten?

Autor: Tobi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.