BPM Counter mit AVR ?

Gast #61018
Lesenswert?

Hi,

ich weiss jetzt nicht, wie man die Spannung auf den Analogeingang
wandelt, aber wenn die einmal darauf liegt, würde ich das so machen
(Pseudo-Code)


Timer setzen, alle 20 Millisekunden (50*pro sekunde, wert evtl
anpassen)

counterlow = 0
counterhigh = 0

Do
  endlosschleife, der Timer wird angesprungen
Loop

Timerroutine:
  speichere Analogwert in Variable aktuell

  wenn aktuell größer als maximalwert
         > ersetze maximalwert durch aktuell

  wenn aktuell größer als 85% maximalwert
         > increase counterhigh
  sonst
         > increase counterlow

  bpm = counterhigh / (counterlow + counterhigh)  50  60

  wenn (counterhigh + counterlow) > 600
         > counterhigh = counterhigh / 600
         > counterlow = counterlow / 600

Return


Dann sollte eigentlich in der Variablen BPM der Wert stehen. Ich bitte
um Berichtung meiner Denkfehler ;-)

Gruß
sebezahn

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