impulse zählen
In diesem Fall muß das Signal "entprellt werden". Das Prinzip besteht darin, daß, wenn der Schwellwert einmal überschritten wurde, die Detektion weiterer Schwellwertüberschreitungen erst mal totgelegt wird, und zwar so lange, bis die Störungen abgeklungen sind, aber nicht unnötig lange, so daß der nächste echte Schwellwert wieder erfasst wird.
Wie leicht einzusehen, kann das aber nur funktionieren, wenn die Zeitdauer der Störungen deutlich geringer ist als die minimale halbe Periodendauer des Signals. Wenn das Tastverhältnis sehr von 0,5 abweicht, wird es u.U. komplizierter, aber nicht unlösbar.
Um Dir zu helfen, wären folgende Angaben dienlich: Dauer der Störungen von..bis, Dauer des High-Zustandes von..bis, Dauer das Low-Zustandes von..bis, Gesamt-Periodendauer von..bis, Frequenz der Störung von..bis
Dazu noch ein typischer Signalverlauf, und zwar als echte Daten, mit denen man testen kann.
Vieleicht schafft Du es selbst das Problem zu lösen mit folgendem Tip: Die eleganteste und zugleich einfachste Realisierung wäre mit einer Zustands-Maschine, mit 4 Zuständen, die zyklisch (1-2-3-4-1-2-3..) durchlaufen werden:
Z1: Warten auf Schwellwertüberschreitung
Z2: Warten x ms
Z3: Warten auf Schwellwertunterschreitung
Z4: Warten y ms
|