Hallo! Wie kann ich meinem Controler ( mega32 ) verständlich machen, daß eine Zustandsänderung an einem Pin nur dann Gültig ist wenn der Zustand über einen gewissen Zeitram ( 100 ms ) anliegt, ansonsten handelt es sich um ein Störsignal?
wenn signal vorhanden -> timer starten -> timer läuft ab -> nochmal nachgucken -> passende Aktion ausführen oder guck mal unter Entprellung http://www.mikrocontroller.net/articles/Entprellung
Wenn eine Zustandsänderung auftritt kannst du doch einfach einen Timer starten, wenn nach Ablauf des Timers das Signal noch immer anliegt -> übernehmen ansonsten verwerfen oder?
Den Eingang im 1ms-Takt abfragen. Wenn Eingang auf 1, aufwärts zählen. Wenn Eingang auf 0, rückstellen auf Null Wenn 100 erreicht, Signal als gültig verwenden.
>> Wenn eine Zustandsänderung auftritt kannst du doch einfach einen Timer >> starten, wenn nach Ablauf des Timers das Signal noch immer anliegt -> >> übernehmen ansonsten verwerfen oder? Geht nicht, da es sich ja um mehrere Störungen handeln kann.
So wird das in Hardware gemacht: Nimm z.B. ein 8-Bit Schieberegister, und takte im 12ms Raster immer den Eingang ein. Wenn dann alles 0 ist (0x00), dann hast du eine entprellte 0, wenn alles 1 ist (0xff), dann hast du eine entprellte 1.
- Mittels Timer zyklische Aufrufstruktur erstellen - Zustandsabfrage in einen der zyklen integrieren (z.B im 16ms -Zyklus) - Zähler in die Zustandsabfrage implementieren: Wenn nach 6 Aufrufen immer noch High-Pegel anliegt, dann als gültig betrachten (6*16 = 96ms) Gruß DW
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.