Hallo. Kann man bei einem AVR eine Entprellung und Entstörung wie folgt machen: Bei einer steigenden Flanke wird ein Timer gestartet. Erst nach Ablauf von 100 ms wir der Wert akzeptiert. Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die sonst 50 mal pro Sekunde triggert?
nein geht nicht, 100 mS sind 5x 50Hz, Timer und Netz laufen also synchron.
Meines Wissens sind 10ms grosszügig genug für Entprellung - für die meisten Schalter / Taster reichen 1ms - 2ms (aber ohne Garantie). @Blume Wieso geht das nicht mit 100ms? Ist doch eine halbe Schwingung, sollte also optimal sein?
@Voltage Wenn die Netzeinkopplung triggert solltest du das Problem wohl erst mal auf Hardwarebasis lösen (evt. Pull-up / Pull-down Widerstände?)
Voltage schrieb: > Hallo. > > Kann man bei einem AVR eine Entprellung und Entstörung wie folgt machen: > > Bei einer steigenden Flanke wird ein Timer gestartet. Nö, Unfug, der Timer wird bereits beim AVR-Start gestartet und liest alle etwa 4 bis 30 ms ein komplettes Byte mit bis zu 8 Tasten ein. > Erst nach Ablauf > von 100 ms wir der Wert akzeptiert. Nööö, erst wenn 4 Runden hintereinander der Tastenzustand als (gegenüber gemerktem und als gültig erklärten Zustand) verändert erkannt wurde, erreicht der Tastendruckzähler seinen Endwert, was dazu führt, dass der neue Tastenzustand übernommen (gemerkt und für gültig erklärt) wird. Als Zugabe gibt es noch Flankenerkennung (Taste wurde irgendwann mal gedrückt, aber noch nicht bearbeitet) für bis zu 8 Tasten gleichzeitig und mit kleiner Erweiterung auch eine Repeatfunktion für ausgewählte Tasten. Falls Dich das interessiert, dann suche mal in der Codesammlung nach "Bulletproof". > Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die > sonst 50 mal pro Sekunde triggert? Man muss die Tasten ja nicht gerade mit exakt 50 Hz abtasten. Obwohl das bei mir (mit 20 ms) noch nie zu Fehlauslösungen geführt hat, obwohl ich nur die AVR-internen Pullup-Widerstände benutze. Wenn bei Dir das Netz einstreut, dann machst Du was Anderes falsch. ...
BlumentoPferde schrieb: > nein geht nicht, 100 mS sind 5x 50Hz, Ich dachte immer, 100 Millisiemens sind 10 Ohm... > Timer und Netz laufen also > synchron. ...
Voltage schrieb: > Bei einer steigenden Flanke wird ein Timer gestartet. Erst nach Ablauf > von 100 ms wir der Wert akzeptiert. Es hat sich bewährt, den Timer durchlaufen zu lassen, dann kann er noch andere Sachen machen. Auch entprellt man bequemer Weise gleich den ganzen Port, da oftmals eine Taste nicht reicht. Und wenn man auch das Loslassen entprellt, wird das noch sicherer und die Software einfacher (keine Fallunterscheidung). Beitrag "Universelle Tastenabfrage" Peter
Wohnst Du im Trafohäuschen? Wenn EMV trotz Pull-up-Widerstand ein Problem ist, schalte es so: Taster gegen Masse, anderer Anschluß über 100R an Schmitt-Trigger-Eingang (HC11). Außerdem dort 1kR nach Vcc und 10kR mit 10nF nach GND. Schmitt-Trigger-Ausgang an µC. Schluß ist mit Störungen! Leider ist dann auch die Stromaufnahme der Schaltung enorm: 5mA extra pro Taster. Entprellung machste dann in Polling. Wenn bei z.B. 280Hz Abtastung 7 hintereinanderliegende Zustände gleich sind, wird Deine Tastervariable gesetzt. Gruß - Wolfgang
Voltage schrieb: > Kann man damit auch die 50 Hz Einkopplung aus dem Netz eliminieren, die > sonst 50 mal pro Sekunde triggert? Dann hast Du einen Kurzschluß vom Taster zur 230V-Leitung, den mußt Du auftrennen. Die 50Hz sind sinus, die können sich nicht einkoppeln. Was da stört, sind Schaltvorgänge, die erzeugen HF. Peter
Wolfgang, nach dem Schmitt Trigger ist doch keine Entprellung mehr nötig?
Hannes Lux schrieb: > BlumentoPferde schrieb: >> nein geht nicht, 100 mS sind 5x 50Hz, > > Ich dachte immer, 100 Millisiemens sind 10 Ohm... > >> Timer und Netz laufen also >> synchron. > > ... komm Ich jetzt ins Fernsehen? :-)
Im Prinzip nein, aber... Wer will eigentlich garantieren, daß es dann keinesfalls mehr prellen kann? Sieh eine Entprellung in Software vor (kleine Kodierübung) und freue Dich dann, falls sie doch nicht in Aktion treten müssen sollte. Der Speicherverbrauch hält sich in Grenzen und auch die Prozessorlast ist zu vernachlässigen. Gruß - Wolfgang
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.