Hallo, bei meinem aktuellen Projekt müssen Taster abgefragt werden, die etwas weiter von Mikrocontroller (ATMEGA644) entfernt sind und für die sowieso keine Beine frei wären. Ich denke gerade an die Möglichkeit die Taster an zwei PCF8574 anzuschließen (für jeden Taster einen einzelnen Eingang - keine Matrix) und nur die I2C Leitungen plus eine Interruptleitung zum Hauptcontroller zu führen. Die I2C-Leitungen verlaufen sowieso durchs ganze Gerät. Nun zur Frage: Ist es überhaupt notwendig die Tasten zusätzlich noch per Software zu entprellen, da die Abfrageprozedur per I2C sowieso relativ langsam im Vergleich zu einer direkten Abfrage ist? Die Taster in der Nähe des Mikrocontrollers werde ich wahrscheinlich mit einer Matrix und einem ADC-Eingang abfragen: Beitrag "Re: Tastenmatrix auslesen über nur 2 Leitungen" Grüße Jörn
Joern B. schrieb: > Ist es überhaupt notwendig die Tasten zusätzlich noch per Software zu > entprellen, meiner Einschätzung nach nicht.
Joern B. schrieb: > Ist es überhaupt notwendig die Tasten zusätzlich noch per Software zu > entprellen, da die Abfrageprozedur per I2C sowieso relativ langsam im > Vergleich zu einer direkten Abfrage ist? Kommt drauf an, was Du unter langsam verstehst. Ist langsam alle 100us oder alle 100ms?
@ Joern B. (moin) >Ist es überhaupt notwendig die Tasten zusätzlich noch per Software zu >entprellen, da die Abfrageprozedur per I2C sowieso relativ langsam im >Vergleich zu einer direkten Abfrage ist? Eigentlich schon, denn eine Tastenabfrage alle 1-10ms unterschiedet sich nicht zwischen direkten Pins und I2C Portexpander.
Hallo Falk, deine Antwort habe ich leider nicht verstanden und bitte um eine Erklärung. Meine Idee war, dass das bis zum Beginn einer Abfrageprozedur sowieso so viel Zeit vergeht, dass der Schalter dann nicht mehr prellt. Vielleicht mache ich aber hier sowieso einen Gedankenfehler. Die PCF8574 wollte ich sowieso nur abfragen, wenn das Interrupt-Signal des PCF8574 einen Wechsel anzeigt. Vergessen hatte ich zu erwähnen, dass ich zum Entstören sowieso am Eingang des Portexpanders 47nF hängen möchte. Aufbau: Taster mit 10k nach 5V und 47nF nach Masse. Dann geht es zum Eingang des PCF8574 Vielleicht wird auch ein anderer Portexpander verwendet, was aber an der Fragestellung nichts ändert. Grüße Jörn
Entprellen schadet nichts und kostet kaum Ressourcen. Also im Zweifel ruhig einbauen. Außerdem ermöglicht es bequem Zusatzfunktionen (lang/kurz/repeat). Peter
@ Joern B. (moin) >deine Antwort habe ich leider nicht verstanden und bitte um eine >Erklärung. Man kann auch einen PCF8474 mit einem 1ms Timer abfragen, wenn man es denn will oder braucht. Ein Schalter kann mehr als 1ms prellen. Wenn man nun nicht entprellt, prellt es ;-) Das Gleiche geht auch mit direkt an den Propzessor angeschlossenen Tastern, auch wenn man die theoretisch mit 100kHz auslesen könnte. > Meine Idee war, dass das bis zum Beginn einer Abfrageprozedur >sowieso so viel Zeit vergeht, dass der Schalter dann nicht mehr prellt. Wie lange ist das? 1ms? 10ms? Soooo langsam ist I2C auch nicht bei 400kbit/s. Klar kann man mit gemächlichen 10ms oder gar 100ms die Tasten auslesen, dann muss man wohl nicht mehr entprellen. >Vielleicht mache ich aber hier sowieso einen Gedankenfehler. Die PCF8574 >wollte ich sowieso nur abfragen, wenn das Interrupt-Signal des PCF8574 >einen Wechsel anzeigt. Kann man machen. Dann muss man aber dennoch iregndwie entprellen, sinnvollerweise NICHT mit Warteschleifen. Eher so, dass man in einem x ms Timerinterrupt prüft, ob das INterruptpin aktiv ist und dann ausliest. >Vergessen hatte ich zu erwähnen, dass ich zum Entstören sowieso am >Eingang des Portexpanders 47nF hängen möchte. >Aufbau: Taster mit 10k nach 5V und 47nF nach Masse. Dann geht es zum >Eingang des PCF8574 Und tostet langsam aber sicher deinen Kontakt, der jedes mal die 47nF hart kurzschließt. Nicht gut. Lass das alles weg und schließ die Taster direkt ohne alles gegen Masse an. Fertig. http://www.mikrocontroller.net/articles/Port-Expander_PCF8574
Joern B. schrieb: > Meine Idee war, dass das bis zum Beginn einer Abfrageprozedur > sowieso so viel Zeit vergeht, dass der Schalter dann nicht mehr prellt. Weiß der Schalter von deiner Idee? Oder weißt du sicher, dass das so ist? Wie lange prellt dein Schalter? Und nach 10000 Betätigungen? Frag ich mal andersrum: Hast du irgendeine Versicherung abgeschlossen? Wenn ja: warum? Richtig: weil es sein könnte, dass... Und jetzt wieder: Entprellst du deine Schalter? Wenn ja: warum? Richtig: weil es sein könnte, dass...
Joern B. schrieb: > Die PCF8574 > wollte ich sowieso nur abfragen, wenn das Interrupt-Signal des PCF8574 > einen Wechsel anzeigt. Du findest aber das Prellen des Tasters auf dem Interrupt-Signal wieder. Entprellen würde eher so funktionieren, daß Du den PCF in einem festen Zeitraster ausliest, welches langsam genug ist, um Prellen auszuschließen.
@alle Ihr habt mich überzeugt. Die Arbeit mit dem Timer und ohne Wartezeiten habe ich mit Bascom bisher so noch nicht gemacht und werde mich damit mal auseinandersetzen. Die Tutorials hier im Forum habe ich gefunden und werde sie durcharbeiten. Bisher hatte ich gehofft, dass ich um diese Timer-Geschichte herumkomme ;-(. Noch ist die Routine von Peter für ich etwas sperrig. In meinem Projekt arbeite ich mit einem Drehencoder, direkt abgefragten Tastern, mit über I2C abgefragten Tastern, einem Display. Gesteuert werden einige Relais, ein DDS AD9912 und ein SI570. Zusätzlich ist das Umfeld mit HF-Störungen durchsetzt. Mir wird immer klarer, dass ich eine handfeste Absicherung durch eine Entprellung benötige. Wenn ich eine Timer-Entprellung in Bascom eingebunden habe, kann ich sie auch für spätere Projekte verwenden ;-). Grüße Jörn
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.