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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren