Forum: Projekte & Code steigende und fallende Flanken zaehlen


von guenter (Gast)


Lesenswert?

Hallo, hat jemand eine Idee wie man mit einem Zaehlereingang steigende
und fallende Flanken zaehlen kann?

Im Datenblatt (hier z.B. mega32) steht, dass die Zaehler nur auf
steigende oder fallende Flanken getriggert werden koennen.

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

INT-EIngang nach jeder Flanke in der Interrupt-Routine umschalten.

Oder Impulsverdoppler mit EXOR-Gatter und RC-Glied davor. Also ein
EXOR-Eingang direkt angeschlossen, der andere mit R in Serie und C nach
Masse verzögert, das gibt für beide Flanken einen kurzen Impuls am
EXOR-Ausgang

von Stefan K. (_sk_)


Lesenswert?

.. oder nur die fallende Flanke zählen. Den Wert verdoppeln und 1
dazuzählen, wenn Pin beim Abfragen High ist.

Gruß, Stefan

von guenter (Gast)


Lesenswert?

Vielen Dank Christoph_Kessler.

Stefans Beitrag war nicht sehr produktiv

von Stefan K. (_sk_)


Lesenswert?

Ach ja? Was ist Dir daran zu unproduktiv?

Immerhin ist das eine Lösung, bei der Du nicht bei jedem Impuls einen
INT generieren musst.

Übrigens, wenn Du gerade bei produktiv bist: die Codesammlung ist nicht
für Fargen, sondern für produktive Beiträge Deinerseits.

von Tobias S. (tobias)


Lesenswert?

Interessante Idee Stefan.

Guenters Beitrag ist leider nicht produktiv.

von Hagen (Gast)


Lesenswert?

Interssante Idee ? Ich meine es ist die offensichtlichste Lösung und
wohl der konstruktivste Beitrag im Thread.

Zwei fallende Flanken können nur auftreten wenn zwischen ihnen eine
steigende Flanke liegt. Das ist offensichtlich und logisch
unwiderlegbar. Ergo: man zählt nur eine der Flanken und addiert +1 wenn
beim Ende der Messung der aktuelle Pegel negiert ist.

Stefans Vorschlag ist also der technisch einfachste und logisch wohl
simpelste.

Gruß Hagen

von Hagen (Gast)


Lesenswert?

Mit einem AVR verbindet man den Meßeingang mit einem T0 oder T1 Eingang.
Dieser zählt dann die Takte in einen Timer Counter. Parallel dazu lässt
man einen zweiten Timer eine bestimmte Meßzeit laufen. Nach der
geforderten Meßperiode nimmt man einfach den Timer Counter des T0/T1
Eingangs und addiert je nach Pegel am T0/T1 Eingang noch +1 drauf,
fertig. Ein 16Mhz AVR kann dann bis zu 4MHz auf diese Weise zählen.

Gruß Hagen

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
Noch kein Account? Hier anmelden.