Forum: Mikrocontroller und Digitale Elektronik Timer Clock Source


von Udo (Gast)


Lesenswert?

Moin,

wie kann ich mir die Timer Clock Source vorstellen? Ist diese vom 
Controller-Takt abhängig oder besitzt der Timer einen eigenen Takt?

von johnny.m (Gast)


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.

von unsichtbarer WM-Rahul (Gast)


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...

von Udo (Gast)


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?

von Karl heinz B. (kbucheg)


Lesenswert?

> Soweit Richtig?

Fast. Der Timer macht 256 Zählvorgänge von einem
Überlauf zum nächsten. Er zählt ja von 0 bis 255
und das sind nun mal 256 Zählvorgänge :-)

(8 * 256) / 14745600 = 138,888µs

Aber ansonsten ist dein Gedankengang bis hierher
richtig.



von Udo (Gast)


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?

von unsichtbarer WM-Rahul (Gast)


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.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.