-         

Ergebnis 1 bis 4 von 4

Thema: Drehzahlerfassung

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    19.03.2005
    Beiträge
    19

    Drehzahlerfassung

    Anzeige

    Habe ein Programm geschrieben das die Impulse pro Sekunde zählt. Leider reicht mir die Sekündliche Messung nicht mehr aus. Jetzt möchte ich über einen Timer die Impulslänge messen um mehrere Messungen in der Sekunde durchführen zu können. Ich hatte da folgende Idee:
    Ich wollte bei einer negativen Flanke einen Timer Starten und bei der nächsten Flanke den Timer wieder stoppen und dann den Timerwert auslesen. Theoretisch alles klar aber leider weiss ich nicht wie!
    Vieleicht hat da einer ein kurzes Beispielprogramm für den Atmega8.


    Dank für alle Beiträge schon im voraus
    Michael

  2. #2
    Erfahrener Benutzer Fleißiges Mitglied
    Registriert seit
    08.08.2004
    Ort
    durmersheim international
    Alter
    57
    Beiträge
    159
    hi,
    prinzipiell könntest du das so machen:
    1. neg. flanke löst interrupt aus.
    2. timer auslesen und mit variable (wert aus vorhergehender messung) vergleichen
    3. variable mit neuem wert beschreiben
    4. die differenz aus neuem wert zu gespeichertem wert ist die zeit, die zwischen 2 neg. flanken vergeht
    5. zeit in freq umrechnen - fertig
    grüssens, harry
    der kopf ist rund damit das denken seine richtung ändern kann...

  3. #3
    Benutzer Stammmitglied
    Registriert seit
    29.12.2004
    Ort
    Bayern
    Alter
    38
    Beiträge
    90
    Hi,
    timer1 bietet eine capture funktion, die einen interr. auslöst. ist sozusagen wie eine stopuhr.
    timer1 läuft frei und wenn, bei steigender oder fallender flanke, je nach dem, wie du programmiert hast ein int. ausgelöst wird sichert der AVR den timer-zählerstand im capture-register, das dann ausglesen werden kann...
    je nach taktfrequenz und vorteilung zählt der timer schneller oder langsamer seine 16bit hoch, so erhöht er sich: ein beispiel jede mSec. um 10. d.h. wenn ein int. erfolgt und das cature-register den wert 300 enthält, sind 30mSec. vergangen...
    umrechnen musst das noch selber, wieviele impulse du pro umdrehung hast...

    grüße ralf

  4. #4
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    28.02.2005
    Ort
    Salzburg
    Alter
    37
    Beiträge
    464
    Such mal nach dem Befehl "PULSEIN"
    Damit kannst per neg. oder pos. Flanke die Pulsweite messen.
    Ist sicher einfacher als mit Timer.

    MFG

    Vader

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •