Forum: Mikrocontroller und Digitale Elektronik AT16:Im Datenblatt steht: Prescaler from Timer0 and 1 is shared


von Hans W (Gast)


Lesenswert?

Da ich nicht gut aus dem Test rauslesen konnte, habe ich ein paar 
Fragen:

1. Es steht im DB, dass beide vershciedene Prescaler haben können, wird 
die Schnelligkeit dadurch beeinflusst weil sie den selben Prescaler 
neutzen müssen?

Wie schuts generell da drinn aus?
Wird für jeden einzelnen Timer ein eigener Oszillator erstellt?

Und kann ich jeden Timer einzeln mit seiner Frequenz betreiben ohne 
dadurch beeinflusst zu werden?

Was passiert eigentlich wenn ein Timer Ovf auslöst und danach noch 
einer?
Wird nach dem ersten Ovfl der erste normal weiterlaufen obwohk ein 
Interrupt vom 2ten ausgelöst wurde? Ich glaube schon aber ich bin mir 
nicht sicher, und mein englisch ist ziemlich mieß.

lg Hans

von holger (Gast)


Lesenswert?

>und mein englisch ist ziemlich mieß.

Und dein Deutsch auch. Also setz dich jetzt
noch mal hin und schreib alles noch einmal.

von Hans W (Gast)


Lesenswert?

holger schrieb:
> Und dein Deutsch auch. Also setz dich jetzt
> noch mal hin und schreib alles noch einmal.

Also es geht um die Timer des AVR Controllers ATmega16.

Ich habe 3 Timer:

wobei jeder einzelne in einem anderen Modi betrieben werden kann.

Meine Frage jetzt lautet: Läuft der Timer nachdem er die Interrupt 
Routine aufgerufen hat (also nach seinem Überlauf) wieder von vorn los 
oder wartet er bis die ISR fertig ist und dann erst?

lg Hans

von Hans W (Gast)


Lesenswert?

Und noch eine Frage:
Im Datenblatt steht, dass der Timer0 und der Timer1 den selben Prescaler 
teilen, wobei jeder Timer einen unterscheidlichen Prescalerwert 
aufweisen darf.

Läuft einer oder beide Timer jetzt langsamer weil es ja nur einen 
Prescaler gibt?

lg Hans

von holger (Gast)


Lesenswert?

>Meine Frage jetzt lautet: Läuft der Timer nachdem er die Interrupt
>Routine aufgerufen hat (also nach seinem Überlauf) wieder von vorn los
>oder wartet er bis die ISR fertig ist und dann erst?

Der läuft einfach weiter.

von Hc Z. (mizch)


Lesenswert?

Hättest Du doch gleich ATmega16 geschrieben statt AT16.  Hier ist doch 
kein Textadventure ...

Der Timer läuft konstant mit seinem Takt, ohne auf irgendwas zu warten, 
was er im Vorübergehen ausgelöst hat.  Und dem Prescaler ist es egal, 
wieviel Timer am selben Ausgang hängen.

von Hans W (Gast)


Lesenswert?

ok danke

lg Hans

von Mark .. (mork)


Lesenswert?

Hans W schrieb:
> Und noch eine Frage:
> Im Datenblatt steht, dass der Timer0 und der Timer1 den selben Prescaler
> teilen, wobei jeder Timer einen unterscheidlichen Prescalerwert
> aufweisen darf.
>
> Läuft einer oder beide Timer jetzt langsamer weil es ja nur einen
> Prescaler gibt?

Jeder Timer läuft so schnell, wie er vom jeweiligen Prescaler 
eingestellt wurde. Lediglich der Zähler, der die Takte teilt, ist beiden 
Timern gemeinsam. Das braucht einen als Programmierer aber nicht zu 
interessieren. Für weitere Details siehe Figure 39, Seite 88 des 
Datenblatts vom ATmega16.

MfG Mark

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.