Forum: Mikrocontroller und Digitale Elektronik Frage zu Konzept mit Timer/Counter am Tiny13


von Werner (Gast)


Lesenswert?

Hallo,
ich möchte die Frequenz eines Signals messen. Wenn die Frequenz größer
150 Hz ist soll ein Ausgang geschaltet werden.
Dafür hatte ich mir den Tiny13 ausgesucht, da er schön klein ist und
sich mit WinAVR programmieren läßt.
Eigentlich wollte ich einen Counter über einen ext. Interrupt
getriggert laufen lassen und per Timer alle 100 ms nachschauen, ob das
Limit überschritten ist. Dafür bräuchte ich aber Timer und Counter.
Leider habe ich jetzt festgestellt, das der Tiny13 ja nur einen
Timer/Counter hat.

Alternativ könnte ich auch die Zeit zwischen zwei Ereignissen am ext.
Interrupt messen. Zeit zwischen 2 Signale ist ja ca. 7,5 ms.
Kann ich den Timer im 0,2 ms Takt laufen lassen und durch den ersten
Interrupt starten und vom zweiten wieder stoppen und dann die Zeit
auswerten?
Würde das so funktionieren?

Danke schomal
  Werner

von Alex Trusk (Gast)


Lesenswert?

pseudocode:

signal int
{
  zeit=TIMER;
  TIMER=0;
  if ((zeit>grenzwert) || overflow)
  {
    frequenz hoeher;
    overflow=0;
  }
  else
    frequenz niedriger;
}

signal timer
{
  overflow=1;
}

gruss, alex.

von Alex Trusk (Gast)


Lesenswert?

hoeher-->niedriger

von Werner A. (homebrew)


Lesenswert?

Hi Alex,
sieht gut aus. Ich werde das dann mal so probieren.
DANKE
  Werner

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.