Timer Clock Source

Gast #437880
Lesenswert?
• ▲
▼
Das kommt drauf an. Jeder Timer besitzt eine Taktquelle, auf deren 
Flanken er zählt. Wie er zählt (aufwärts, abwärts) und wie die 
Taktquelle beschaffen ist, hängt davon ab, was für einen Timer man hat. 
Bei Timer/Zähler-Komponenten in Mikrocontrollern (gehe mal davon aus, 
dass Deine Frage sich darauf bezieht, auch wenn Du Details verschweigst) 
sind i.d.R. unterschiedliche Taktquellen auswählbar. Welche das sind 
steht im Datenblatt des betreffenden Controllers. Timer sind nix anderes 
als Zähler, die mit einer festen Frequenz getaktet werden, also i.d.R. 
mit dem Prozessortakt oder einem durch einen Vorteiler (Prescaler) 
erzeugten Teil davon. Es sind Zähler, die feste Zeiteinheiten zählen. In 
der Betriebsart "Ereigniszähler" kann ein Timer durch ein externes 
(asynchrones und frequenzvariables) Taktsignal getaktet werden.
Gast #437883
Lesenswert?
• ▲
▼
>Ist diese vom
>Controller-Takt abhängig

nicht unbedingt.

>oder besitzt der Timer einen eigenen Takt?

Jain...

Den Takt kann der Timer entweder über einen bestimmten Pin von aussen 
zugeführt bekommen oder über verschiedene Vorteiler aus dem Systemtakt 
ableiten.
Wenn du verrätst um welchen Controller es sich handelt, kann man die 
auch entsprechende Passagen im Datenblatt empfehlen...
Gast #437893
Lesenswert?
• ▲
▼
Atmega8 mit 14,745600MHz

Ok,

also wenn ich den Timer mit einem Vorteiler betreibe, ist der Takt des 
Timers vom Prozessortakt abhängig.

Bei einer Frquenz von 1475600 Hz dauert ein Takt also 68ns.

Wenn ich jetzt einen Vorteiler von 8 verwende, braucht ein 8Bit Timer 
für einen Überlauf also ungefähr 138µs.

(8 * 255) / 14745600 = 138,346µs

Soweit Richtig?
Gast #437921
Lesenswert?
• ▲
▼
Ja stimmt, die 0 muss ja auch noch mit ;-)

Ok, wenn ich jetzt den Overflow Interrupt des Timers benutze, sollte 
dieser ja theoretisch alle 138,888µs ausgelöst werden.

Theoretisch, das heißt wenn ich keinen anderen Interrupt benutze. Kommt 
jetzt z.B. ein anderer Interrupt hinzu, und dieser wird gerade beim 
Overflow ausgeführt, verschiebt sich doch der Overflow Interrupt um ein 
gewisse Zeit.

Oder lieg ich da falsch?
Gast #437931
Lesenswert?
• ▲
▼
>Oder lieg ich da falsch?
Ja, der Interrupt tritt immer zum gleichen Zeitpunkt auf. Nur dessen 
Bearbeitung kann sich nach hinten verschieben, wenn die "zeitgleich" 
auftretende ISR zu lang ist...In der Kürze liegt die Würze - das gilt 
für ISR, sofern mehr als nur eine benutzt wird.

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.