-         

Ergebnis 1 bis 3 von 3

Thema: Jede Sekunde ein Timer Interrupt

  1. #1
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    20.08.2006
    Beiträge
    339

    Jede Sekunde ein Timer Interrupt

    Anzeige

    Hallo

    Kann ich einen Timer so einstellen, dass ich jede Sekunde einen interrupt bekomme?

    Und brauche ich dafür ein besonderes Quarz?

    Oder geht das nicht bzw nur sehr ungenau?


    Viele Grüße,
    Johannes

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von SprinterSB
    Registriert seit
    09.06.2005
    Ort
    An der Saar
    Beiträge
    2.801
    Ein Beispiel ist da:

    http://www.roboternetz.de/wissen/ind...in_einer_Datei

    Die Genauigkeit ist abhängig von der Genauigkeit des Takts und davon, ob die Division in
    Code:
    #define OCR_VAL          (F_CPU / INTERRUPTS_PER_SECOND -1)
    einen Rest hat (ungenau) oder nicht (genau).
    Für OCR_VAL muss gelten 0 <= OCR_VAL < 65536. Im Beispiel ist INTERRUPTS_PER_SECOND auf 1000, also gibt es jede ms eine IRQ. INTERRUPTS_PER_SECOND sollte möglichst klein sein, damit die IRQ-Last möglichst klein ist.

    Hier geht also
    F_CPU=1000000
    INTERRUPTS_PER_SECOND=64
    OCR_VAL=15624

    Für kleinere Werte von INTERRUPTS_PER_SECOND bekommst du Ungenauigkeit, weil das einem gebrochenen Wert von OCR_VAL entspräche.

    Mit einem Prescale von 64 kommst du nur noch einmal pro Sekunde in die ISR, dadurch wied der Code einfacher und die IRQ-Last ist minimal für dieser Aufgabe. Allerding stimmt die obige Formal so nicht, weil die von PRESCALE=1 ausgeht.


    Code:
    #define PRESCALE      64
    INTERRUPTS_PER_SECOND 1
    #define OCR_VAL          (F_CPU / Prescale / INTERRUPTS_PER_SECOND -1)
    Wenn dein AVR einen internen RC-Oszillator hat, kannst den verwenden. Ist allerdings ungenauer als Quarz. ALternativ gehen auch externer Oszillator/Takt, Keramik-Resonator oder RC-Glied.
    Disclaimer: none. Sue me.

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    25.07.2004
    Beiträge
    20
    hi,

    vielleicht hilft dir auch folgender link weiter

    Die genaue Sekunde

Berechtigungen

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