Impulszähler Starterkennung

Gast #5823697
Lesenswert?

Hallo Leute,

ich stehe vor einen Problem, wo ich leider noch keinen vernünftigen 
Ansatz gefunden habe.

Ich möchte Impulse zählen in einen festgelegten Zeitraum.
Ein ATtiny2313 soll von einen Münzzählgerät Impulse zählen.

Dieses Gerät gibt in einer festen Zeit unterschiedliche Anzahl von 
Impulsen in einer festen Zeitbasis von 100ms, je nach Münzstück.

Diese möchte ich auswerten um die Summe der Münzstücke zu addieren.

Meine Überlegungen bisher:
Ich nutze einen Timer und konfiguriere ihn mit externen Takt und lege 
dort mein Impulsausgang vom Münzzahler an.

Ein zweiter Timer kann mir helfen das Zeitfenster von 100ms zu 
erstellen.

Aber mir fehlt ein Ansatz, wie ich nun den uC sage wann diese 100ms 
eigentlich anfangen. Sie fangen ja mit dem ersten Impuls von dem 100ms 
Zeitfenster an und können ja jederzeit anfangen.

Hat jemand einen Denkanstoß für mich?

Ich bin über jede Hilfe dankbar.
Gast #5823711
Lesenswert?

Es wäre sinnvoller ein Interrupt zu nutzen der ab der ersten 
Signalflanke vom Münzzähler die Zeit bis 100ms startet und dann die 
Anzahl der Impulse auswertet.

Was haltet ihr von der Lösung, sinnvoll?
Gast #5823713
Lesenswert?

Karl M. schrieb:
> Es gibt eine, die Erste steigende Flanke - das wäre aus Sicht des
> Diagramms der Start.
>
> Richtig?

Richtig, diese kommt aber irgendwann, also sobald eine Münze eingeworfen 
wird. Absolut zeitunabhängit.

Aber wenn eine Münze eingeworfen wird, gibt der Automat eine 
Impulsanzahl innerhalb der 100ms aus.
Gast #5823856
Lesenswert?

Flanken ISR:
1. Flanke erkennen
2. läuft das 100ms-Intervall?
(noch) nicht?
2a. Interval-Timer starten
2b. Impuls-Zähler auf 0 setzen

3. Impuls-Zähler erhöhen

Interval-Ende-ISR
1. Impuls-Zahlerstand speichern (für Auswerteroutine)
2. Fertig-Meldung abgeben

Das wären zwei ISR: Eine wird aufgrund eine Flanke an einem IO-Pin 
ausgelöst, die andere beim Überlauf eines 100ms-Singleshot-Timers (kein 
automatisches Reset).

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren