Taster entprellen: µC oder Schaltung

Wenn man in Software mehrere Taster entprellen will, ist hier:

formatting link
eine interessante Lösung angegeben.

cu Michael

Reply to
Michael Schwingen
Loading thread data ...

Michael Schwingen schrieb:

te:

auf

Man sollte auch den Querstrom nicht untersch=E4tzen. Eine Mindestgr=F6=DF= e sollte schon eigehalten werden. Datenblatt sollte Auskunft geben.

--=20 mfg hdw

Reply to
Horst-D.Winzler

Nein, Unfug ist deine Meinung. Du bist nur schlicht nicht in der Lage, das Problem abstrakt genug zu sehen. Ein Bastler halt.

Nein, genau das ist nicht der Fall. Der Status eines Tasters allein nützt nämlich garnix (außer für Sachen wie Reset). Um einen Taster sinnvoll benutzen zu können, muß man auf ÄNDERUNGEN seines Status reagieren. Das bedeutet implizit, daß man sich den zuletzt "gesehenen" Status merken muß, um erkennen zu können, daß sich etwas geändert hat.

Damit ist ein Bit verbraucht. Es mag sein, daß du dieses Bit nicht explizit in deiner Abfrageroutine untergebracht hast, aber es muß irgendwo sein. Wenn nicht in der Abfrageroutine, dann in der eigentlichen Applikation. Die Grundgesetze der Informatik erzwingen das einfach. Also, falls du es nicht glaubst: Zeig' mir deinen Code, und ich zeige dir, wo dieses Bit steckt.

Reply to
Heiko Nocon

Natürlich.

Es bleibt aber die Tatsache, daß man exakt zwei "Merker"-Bits pro Taste zwingend benötigt, nicht mehr und nicht weniger. Schlechtere Lösungen (im Sinne von: Lösungen mit höherem Speicherplatzverbrauch) sind natürlich immer möglich, bessere hingegen nur dann, wenn man auf Funktionalität verzichten kann (oder Teilinformationen bereits anderswo stecken)

Konkret bedeutet der Verzicht auf ein Bit, daß man nur noch einmalig definiert auf eine Flanke (oder den Pegel danach) reagieren kann, der Verzicht auf beide Merker bedeutet, daß man nur noch auf den Pegel reagieren kann. (In diesem Fall steckt z.B. die Information eines der Merkerbits in der Annahme eines definierten Startpegels).

Vielleicht solltest du, statt dich in dem total veralteten Forth-Zeugs zu suhlen (und frecherweise auch noch kommerzielle Werbung zu betreiben) einfach mal deine Informatik-Grundlagenkenntnisse auffrischen.

Das hilft gelegentlich, Scheuklappen zu entfernen. Übrigens ganz unabhängig von der verwendeten Programmiersprache, betrifft also mich selber genauso. Auch ich neige dazu, die Fähigkeiten meiner bevorzugten Programmiersprachen oder der Zielhardware als primäres Kriterium zu betrachten, statt das Problem abstrakt zu analysieren und mir erst hinterher über die Implementierung Gedanken zu machen und die passende Programmiersprache dafür zu wählen.

Reply to
Heiko Nocon

Rafael Deliano schrieb:

Wollte eigentlich nur darauf hinaus, ob der Taster direkt parallel zum Ko liegen soll.

Udo

Reply to
Udo Piechottka

Das war Assembler auf einem PIC16Cxx. Der Hinweis auf weiterführende Information ( die auch kostenpflichtig sein darf ) war thema- und sachbezogen. Jeder ist hier im Sinne einer konstruktiven Diskussion eingeladen andere Varianten konkret, nachvollziehbar darzustellen ( und da bin ich dank meiner Zeitschrift wohl im Vorteil weil ich eben Zugriff auf mehr aufgearbeitetes Material habe ).

MfG JRD

Reply to
Rafael Deliano

Udo Piechottka schrieb:

Noch ein Hinweis. Obige Schaltung ist g=FCnstig wenn mit HF verseuchter Umgebung zu rechnen ist.

--=20 mfg hdw

Reply to
Horst-D.Winzler

Moin!

Zum Entprellen reicht das.

Das hat aber nichts mit der Entprellung zu tun, ist schließlich bei Hardware-Entprellung noch genauso nötig um auf Änderungen zu reagieren.

Gruß, Michael.

Reply to
Michael Eggert

Moin!

Besser nicht ohne R2. 100n direkt parallel zu einem Digitast sind ein zuverlässiger Absturzgenerator.

Gruß, Michael.

Reply to
Michael Eggert

Hi Rafael,

Schierer Neid, nicht Wert, sich darüber aufzuregen

Marte

Reply to
Marte Schwarz

Es ging ums Entprellen. Dafür reicht Abfrage alle 100ms aus.

Na klar muß die Software den letzten Status halten um auf die positive oder negative Flanke zu reagieren. Das ist ein Bit pro Taster.

OK?

Reply to
walter

Bei 50ms Abfrage reichen 50ms+Prellzeit um den Tastendruck sicher zu erkennen. Für manuelle Betätigung sollte das immer schnell genug sein. Gibts Menschen, die eine Taste schneller drücken können?

Bei 600 Anschlägen pro Minute muß sowieso N-Key-Rollover implementiert werden - da fließen die einzelnen Tastendrücke ineinander über. Probiers mal an Deiner Tastatur aus. Ohne Rollover sind 600 APM nicht machbar.

Reply to
walter

Das hat mit Rollover erstmal nichts zu tun. Wie ich gelesen habe, kann man wohl 1200 Anschläge pro Minute - also

20 pro Sekunde schaffen. Nehmen wir mal eine Matrix von 12x8 für eine Tastatur (weiß jetzt nicht, ob es 12x8 ist), dann müssen die Spalten(8) also mindestens alle 4ms eingelesen, und jeweils eine andere Reihe(12) aktiviert werden. 2ms (2ms + Prellzeit) ist schon eine sehr kleine Prellzeit und es mag vielleicht auch sein, dass solche "Weltmeister-Tastaturen" von besonders guter Qualität sind, es zeigt aber, dass die Aussage - man müsse nur die Scan-Intervalle genügend lang machen - so nicht allgemeingültig sein kann.

Dirk

Reply to
Dirk Ruth

In 95% der Fälle ist das Konzept "ausreichend grosses Scan-Intervall" vollkommen ausreichend. In einem typischen, Microcontroller-gesteuerten Gerät muss man weder mit 1000 Anschlägen pro Minute rechnen, noch treten übermässig grosse Tastenmatrizen auf. Kritisch kann allenfalls die Alterung werden, wenn man bei der Qualität der Tasten allzu geizig war.

Bei den wenigen Sonderfällen kann man dann ja immer noch mehr Gehirnschmalz bzw. Speicherplatz investieren, Software ist geduldig...

Hergen

Reply to
Hergen Lehmann

Kommt auf die Anwendung drauf an. Nehmen wir an, ich wollte einen Motor ansteuern und zwar genau dann, wenn eine Taste gedrückt gehalten wird. Dann reicht es, die Taste z.B. alle 200 ms abzufragen und dann die Abfrage des Pins direkt an den Motorsteuerungspin auszugeben. Dadurch würde man vermeiden, daß ein Prellen den Motor schnell hintereinander an-/auschaltet. Dafür wäre dann keine Flankendetektierung notwendig und auch kein Status-Bit notwendig, nur ein Ausgabe-Bit :-)

--
Frank Buss, fb@frank-buss.de
http://www.frank-buss.de, http://www.it4-systems.de
Reply to
Frank Buss

Am Sat, 28 Feb 2009 11:03:58 +0100 schrieb Frank Buss:

Mit etwas mehr Aufwand kann man aber auch das prellen analysieren und regelmässig den Verschleiss der Taster protokollieren ;-)

Lutz

--
Mit unseren Sensoren ist der Administrator informiert, bevor es Probleme im 
Serverraum gibt: preiswerte Monitoring Hard- und Software-kostenloses Plugin 
auch für Nagios - Nachricht per e-mail,SMS und SNMP: http://www.messpc.de
Neu: Ethernetbox jetzt auch im 19 Zoll Gehäuse mit 12 Ports für Sensoren
Reply to
Lutz Schulze

Na klar hat das mit Rollover zu tun. Die einzelne Taste ist auch bei 1200 Anschlägen pro Minute längere Zeit gedrückt.

Im Übrigen war die Frage des OP nach dem Entprellen einer einzelnen Taste. Abfrage mit Zykluszeit größer als der maximalen Prellzeit löst dieses Problem zuverlässig.

Reply to
walter

Ist ja gut. Da ich nicht weiß was der OP mit seiner Taste machen will hab ich auch keinen Vorschlag zur weiteren Verarbeitung gemacht. Zum Entprellen reichts jedenfalls und mehr ist dafür auch nicht nötig.

Reply to
walter

Heiko Nocon schrieb:

Ahja, das Kriterium für Optimum ist also laut dir einzig und alleine der RAM-Verbrauch. Über den Mehrverbrauch im ROM, den deine Lösung sicherlich mitbringen würde, schweigst du dich aus.

Wenn du Informatik-Grundkenntnisse besitzen würdest, wäre dir der Begriff der Pareto-Optimalität ein Begriff. Dann hättest du auch die Klappe gehalten statt hier so großkotzig rumzukläffen.

Viele Grüße, Johannes

--
"Meine Gegenklage gegen dich lautet dann auf bewusste Verlogenheit,
verlästerung von Gott, Bibel und mir und bewusster Blasphemie."
         -- Prophet und Visionär Hans Joss aka HJP in de.sci.physik
Reply to
Johannes Bauer

Das dachte ich auch. Kleines Prüftool mit genau 1 Taste. Die Prüfung dauert viele Sekunden und braucht bloß einen Trigger. Wenn aber dem Prüfling eine bestimmte Komponente fehlt bekomme ich gleich 5 bis 10 fehlgeschlagene Tests auf einen Tastendruck. Das macht sich im Logfile nicht gut.

Wenn der Platz schon für so elementare Software zu knapp ist, hat man die falsche Hardware ausgesucht. Gegen Ende der Entwicklung, wenn das schon mal vorgeführt wird, fressen die Begehrlichkeiten des Kunden viel mehr Speicherplatz.

Vor 20 Jahren war Speicherplatz noch ein ernstes Thema. Heute muß das nicht sein.

--
Gruß, Raimund
Mein Pfotoalbum 
Mail ohne Anhang an  wird gelesen. Im Impressum der Homepage
findet sich immer eine länger gültige Adresse.
Reply to
Raimund Nisius

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.