- LiFePO4 Speicher Test         
Seite 2 von 2 ErsteErste 12
Ergebnis 11 bis 12 von 12

Thema: 2 Frequenzen Messen Atmega8-16Mhz, bis 267Hz und 53Hz

  1. #11
    Erfahrener Benutzer Robotik Visionär Avatar von Hubert.G
    Registriert seit
    14.10.2006
    Ort
    Pasching OÖ
    Beiträge
    6.220
    Anzeige

    Praxistest und DIY Projekte
    Wie wäre es mit abwechselnd messen.

  2. #12
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.232
    "zu früh gefreut". Man kann jeweils eine Frequenz ausreichend genau messen
    Das kann ich fast nicht glauben.
    Lässt Du den Timer frei laufen, oder setzt Du ihn (TCNT1) bei jedem INT Interrupt auf 0 ?
    Wenn Du ihn auf 0 setzt kann es nie funktionieren, da der Timer beim esten der beiden auftretenden Interrupts auf 0 gesetzt wird. Der zweite Interrupt liest dann falsche Werte aus.

    Lass den Timer frei laufen lies während der einzelnen INT Interrupts die aktuellen Zählerstände aus und zieh die jeweiligen vorhergehenden Zählerstände ab.

    Das sollte funktionieren.

    Wenn bei niedrigen Frequenzen die 65536 Stufen der Timers 1 nicht reichen kannst Du im Overflow Interrupt des Timers ein weiteres Register mit hochzählen lassen, das in die Berechnung mit eingeht.

    Was dir jetzt immer noch passieren kann ist das was ich als Overtake Effekt bezeichne.
    Der Timer steht kurz vor dem Überlauf, es wird ein INT 0 angelegt.
    Während der Abarbeitung des INT 0 läuft der Zähler nach 0 über und würde einen Timer1 Overflow Interrupt auslösen. Da aber gerade ein Interrupt ausgeführt wird kann dieser Interrupt nicht ausgeführt werden.
    Somit wird der Überlaufzähler nicht Upgedatet und es fehlen Dir bis zu 65536 Counts.
    Bei Verwendung des ICP kann Dir das nicht passieren, weil der Zählerstand im ICP Register des Timers zwischengespeichert wird, meines Wissens ohne den Timer selber zu stoppen.
    Da die Zeit vom Auftreten des ICP Interrupts bis zu Auslesen der Datei immer gleich lang dauert, dürften sich hier auch keine allzu großen Fehler einschleichen.

    Die eigentliche Berechnung der Drehzahl sollte im Hauptprogramm stattfinden um die Interrupts nicht zu lange zu blockieren.

    Feil noch mal ein wenig an deiner Software.

Seite 2 von 2 ErsteErste 12

Berechtigungen

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

Labornetzteil AliExpress