www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik 32Bit Timer Prescale und LoadValue


Autor: Qduda 12345 (Firma: student) (qduda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Zusammen,

ich konnte (trotz zahlreicher Beiträge) kein Thema finden das mir bei 
meinem Problem helfen würde - deshalb mach ich ein neues auf.

Es geht darum das ich einen 32Bit Timer habe. Diesen muss ich mit einem 
Prescale und einem LoadValue laden. Es geht drum das mir der Timer dann 
praktisch kontinuierliche Interrupts erzeugt, wenn er abläuft. (SysTick)

Mein Problem liegt jetzt in der Berechnung des Prescale und des 
LoadValue. Ich habe mal meine alten Unterlagen durchgesehen - aber dort 
haben wir das nur mit 8 oder 16 Bit Timern die bei max. 3 MHZ laufen 
behandelt.

Demnach müsste das hier stimmen.

---
Takt = 60 MHZ = 60000000 Hz
Maxcount = 4.294.967.295 (2^32)
DesiredTimerOverflow = 1 sec
(Verfügbare Prescale 2~1024)

prescale = Takt / (DesiredTimerOverflow * MaxCountOfTimer)
prescale = 60000000 / (1 sec * 2^32)
prescale = 60000000 / 4294967295
prescale = ~ 0,01
prescale = 2

Toverflow = (Takt / prescale) / MaxCountOfTimer
Toverflow = ( 60000000 / 2 ) / 2^32
Toverflow = 30000000 / 4294967295
Toverflow = 0,006985
Toverflow = 0,007

Time = 1 / frequency (Toverflow)
Time = 1 / 0,007
Time = 142,86

Resolution = Time / MaxCountOfTimer
Resolution = 142,86 / 4294967295
Resolution = 0.00000003326...

Preload = MaxCount - (DesiredTimerOverflow / Resolution)
Prelaod = 4294967295 - ~30066145
Preload = 4.264.967.296
---

Kann das denn stimmen? Kommt mir irgend seltsam vor. Der Interrupts wird 
im Millisekundenbereich getriggert, hab leider gerade keinen Oszi da zum 
Messen, aber ich bin noch weit entfernt von Sekunden Interrupts.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.