tholan
30.08.2005, 22:57
Hi,
Ich probiere gerade einen mechanischen Drehimpulsgeber
mit 12 Stufen an einem ATMega8 aus.
Der hängt an PC0 (Rechtsdrehung) und PC1 (Linksdrehung).
PC0 und PC1 sind als Eingänge mit aktivem Pullup konfiguriert.
Der Schalteranschluß C schaltet beim Drehen PC0, bzw. PC1
nach Masse.
Zwei LEDs, die mir die Impulse zeigen, hängen noch an PC2 und PC3.
Der Sourcecode sollte eigentlich stimmen.
Die LEDs zeigen mir schon zuverlässig an,
in welche Richtung ich drehe,
wenn sie denn mal reagieren. Ich nehme an,
der Impulsgeber prellt ganz schön beim Drehen.
Die Pullups haben laut Datenblatt 'nen Wert von 20k - 50K.
Was wäre denn da für ein Kondensator einzusetzen, um
die "Drehimpulspreller" ein bischen zu glätten?
Oder gibt's geschicktere Methoden (in Hardware!),
das Teil zu entprellen? Die "debounce" Funktion
scheint mir ziemlich Resourcenfressend zu sein und
haut ja evtl. bei Drehimpulsgebern nicht hin (Geschwindigkeit).
Danke schonmal,
tholan
Ich probiere gerade einen mechanischen Drehimpulsgeber
mit 12 Stufen an einem ATMega8 aus.
Der hängt an PC0 (Rechtsdrehung) und PC1 (Linksdrehung).
PC0 und PC1 sind als Eingänge mit aktivem Pullup konfiguriert.
Der Schalteranschluß C schaltet beim Drehen PC0, bzw. PC1
nach Masse.
Zwei LEDs, die mir die Impulse zeigen, hängen noch an PC2 und PC3.
Der Sourcecode sollte eigentlich stimmen.
Die LEDs zeigen mir schon zuverlässig an,
in welche Richtung ich drehe,
wenn sie denn mal reagieren. Ich nehme an,
der Impulsgeber prellt ganz schön beim Drehen.
Die Pullups haben laut Datenblatt 'nen Wert von 20k - 50K.
Was wäre denn da für ein Kondensator einzusetzen, um
die "Drehimpulspreller" ein bischen zu glätten?
Oder gibt's geschicktere Methoden (in Hardware!),
das Teil zu entprellen? Die "debounce" Funktion
scheint mir ziemlich Resourcenfressend zu sein und
haut ja evtl. bei Drehimpulsgebern nicht hin (Geschwindigkeit).
Danke schonmal,
tholan