Autor |
Taster entprellen (wie am besten?) Suche nach: taster (7674) |
|
|
|
|
BID = 26953
Verion Gelegenheitsposter
Beiträge: 90
|
|
Hi,
ich hab ne frage zum Thema Taster entprellen.
ich hab mehrere taster von conrad an einen mit 12Mhz getakteten µC angeschlossen.
(Datenblatt von den Tastern: http://www.produktinfo.conrad.com/d......pdf)
Die taster werden gepollt, also bei jedem mainloop durchgang abgefragt.
Laut Datenblatt dürften die Taster weniger als 0,5 ms prellen(oder?).
Ich habe nach jedem "erkannten" Tastendruck eine 10ms warteschleife. D.h. die nächsten 10ms werden keine Taster abgefragt.
Das ist schon 20 mal länger, als laut datenblatt nötig ist, trotzdem werden aber desöfteren mehrere tastendrücke erkannt (also bei einmal drücken)
Meine Frage:
sind die Taster ungeeignet, oder ist die einfache 10ms Warteschleife zum "entprellen" ungeeignet?
Welche Methoden gibt es da noch (also zum entprellen) und welche von denen ist zu empfehlen?
Fragen über Fragen..
Chris
[ Diese Nachricht wurde geändert von: Verion am 1 Aug 2003 2:26 ] |
|
BID = 26956
dos6510 Stammposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 357 Wohnort: Raum Stuttgart
|
|
Hi,
normalerweise reicht es, alle 50-100ms eine Taste abzufragen.
I.d. Regel entprellt das schon genug. Wenn es nicht reicht: 2* im 50ms Abstand abfragen und Ergebnis ver-UND-en.
DoS |
|
BID = 27400
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Ich habe nach jedem "erkannten" Tastendruck eine 10ms warteschleife. D.h. die nächsten 10ms werden keine Taster abgefragt. |
Das ist keine Entprellung.
Entprellung ist, wenn Du weiter pollst und darauf achtest, daß der Zustand sich während einer gewissen Zeit nicht ändert. Sollte sich der Zustand ändern, dann beginnt die Uhr mit dem neuen Zustand von neuem zu ticken.
Sowohl "Taster gedrückt" als auch "Taster losgelassen" müssen entprellt werden.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 27426
FatalError Stammposter
Beiträge: 498 Wohnort: Berga /Elster
|
Hab bei mir ein ähnliches Problem gehabt und zwar hatte ich für meine Dampfmaschine einen Umdrehungsschalter eingebaut, der bei jeder Umdrehung gedrückt wird.
Den hab ich an den Gameport meines Computers gehangen und mit einem Basic Programm dauernd abgefragt, zusammengezählt wie oft er in einer Sekunde gedrückt wurde und das Ergebnis mal 60. (Also Umdrehung pro Minute)
Das Abfragen habe ich so geregelt, dass solange nichts passiert, bis der Taster wieder losgelassen wurde.
Klappt alles perfekt bis 8000 Umdrehungen. (schneller kann meine Maschine nicht )
MFG
FatalError
|
BID = 27433
Verion Gelegenheitsposter
Beiträge: 90
|
Zitat :
| Das ist keine Entprellung. |
naja, ich dachte es erfüllt den zweck
tut es aber anscheinend nicht.. na mal schaun
[ Diese Nachricht wurde geändert von: Verion am 5 Aug 2003 21:18 ]
|
BID = 28922
mfd2004 Neu hier
Beiträge: 42 Wohnort: Duderstadt
|
HI!
Komme ziemlich spät zu diesem Thema ....
Mein Lehrer hat mir mal gesagt, das man zum entprellen von Tastern/Schaltern einfach ein Flip-Flop nimmt. Für jenes gibt es ja nur zwei Zustände ......
Mit einiger verspätung ....
mfd2004
|
BID = 28941
perl Ehrenmitglied
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| Mein Lehrer hat mir mal gesagt, das man zum entprellen von Tastern/Schaltern einfach ein Flip-Flop nimmt.... |
Das funktioniert auch prima, wenn der Taster einen Umschaltkontakt hat.
Leider ist das aber meist nicht der Fall.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 30414
nides Gerade angekommen
Beiträge: 2
|
kleinen kondensator (1nf) parallel zum taster!
|
BID = 33403
ET-Profi Neu hier
Beiträge: 30 Wohnort: Bückeburg
|
Zitat :
Verion hat am 1 Aug 2003 02:17 geschrieben :
|
Hi,
ich hab ne frage zum Thema Taster entprellen.
ich hab mehrere taster von conrad an einen mit 12Mhz getakteten µC angeschlossen.
(Datenblatt von den Tastern: http://www.produktinfo.conrad.com/d......pdf)
Die taster werden gepollt, also bei jedem mainloop durchgang abgefragt.
Laut Datenblatt dürften die Taster weniger als 0,5 ms prellen(oder?).
Ich habe nach jedem "erkannten" Tastendruck eine 10ms warteschleife. D.h. die nächsten 10ms werden keine Taster abgefragt.
Das ist schon 20 mal länger, als laut datenblatt nötig ist, trotzdem werden aber desöfteren mehrere tastendrücke erkannt (also bei einmal drücken)
Meine Frage:
sind die Taster ungeeignet, oder ist die einfache 10ms Warteschleife zum "entprellen" ungeeignet?
Welche Methoden gibt es da noch (also zum entprellen) und welche von denen ist zu empfehlen?
Fragen über Fragen..
Chris
<font size=-1>[ Diese Nachricht wurde geändert von: Verion am 1 Aug 2003 2:26 ]</font>
|
ich hab das immer so gemacht ...
taste gedrückt wenn ja > warten bis taste wieder losgelassen > ereignis
|
BID = 34484
Fungus Gerade angekommen
Beiträge: 2
|
unter entprellen verstehe ich eigentlich, die unterdrückung der durch den schalter (bzw. taster) verursachten mechanischen aussetzer, eben das sogenannte "prellen"
je nach qualität, oder alter eines tasters oder schalters, produziert er beim drücken oder loslassen kein sauberes rechtecksignal, sondern ein wahres feuerwerk an impulsen.
klar, je schneller man den taster pollt um so kleinere mechanische aussetzer kann mann abtasten. aber langsames abtasten oder pausen sind nicht so die saubere lösung, weil man, wie perl schon sagte ja auch das loslassen entprellen muß. wer das nicht macht, bekommt beim loslassen meißt min einen falschen tastendruck mit!
es gibt aber auch eine ganz einfache methode für taster die manuell als "quasi" tastatur genutzt werden, also sehr träge sein dürfen:
einfach in die leitung zum controller einen eklo < 0,47 gegen masse, und die andere seite vom taster nicht direkt an masse sondern zum schonen des tasters nen wiederstand 100-1000 Ohm. wenn pull up dann sollte da sowieso ein pull up wiederstand hängen. damit werden die schaltunterbrechungen ausgesiebt und der controller eingang wertet den port als Hi oder Lo wenn der Elko auf den entsprechenden schaltpegel ge- oder entladen wurde.
mit den werten kann man nach belieben experimentieren, nur der wiederstand über den der elko geladen bzw entladen wird, sollte nicht zu klein sein, sonst ist beim entladen keine strohmbegrenzung vorhanden außer dem übergangswiederstand des tasters = schnell kaputt.
von der controller seite geht das natürlich auch.
man muß sich erst einmal einen wert setzen, von dem man sagt, schneller "kann" der taster nicht betätigt werden, also minimal wert für änderung setzen. wird eine änderung erkannt weiterpollen, wenn sich der schaltzustand unter der minimalen zeitspanne ändert, "nicht" akzeptieren und weiterpollen bis der Taster mindestens die gestezte zeitspanne den schaltzustand beibehält. schaltzustand übernehmen und zurück in den main loop.
[ Diese Nachricht wurde geändert von: Fungus am 9 Okt 2003 9:54 ]
|
BID = 34486
Zitterbacke Gerade angekommen
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 15 Wohnort: Ulm
|
naja, du kannst es natürlich auch mit einem Gatter (zB. And) probieren. (siehe unten)
Hochgeladenes Bild : entprellt.gif
_________________
Viele verlieren den Verstand deshalb nicht, weil sie keinen haben.
|
BID = 35341
inst Gelegenheitsposter
Avatar auf fremdem Server ! Hochladen oder per Mail an Admin
Beiträge: 64 Wohnort: Salzburg
|
Wiso macht ihr das alle so kompliziert???
Einfach einen Tiefpass zwischen Taster und uP- Eingang hängen. die Zeitkonstante T=R.C berechnen und los gehts!!
MFG |nst
|