Forum: Compiler & IDEs AVR 16 Bit timer berechnen


von Marcel (Gast)


Lesenswert?

vielleicht ist meine frage besser hier aufgehoben:

um einen 16 bit timer zu berechen muss
ich folgende Berechnung durchführen:

Zeit = 1 / ( Haupttakt  1024  Vorteiler )

jetzt zu meiner frage:

wo kommt eigentlich die 1024 her???
ist das ein weiterer interner vorteiler?

hier mal ein beispiel:

z.B

16 Bit Timer bei einem Vorteiler von 1

25,6[us] = 1 / ( 4000000[Hz]  1024  1 )

funktioniert im AVR-Studio sowie auch im avr selber

von Joerg Wunsch (Gast)


Lesenswert?

Ich vermute mal, Du verwechselst das hier mit einem 10-bit PWM.
Der zählt in der Tat bis 1024.  Ansonsten würde das nur für den
Spezialfall CTC-Mode (clear timer on compare match) zutreffen
mit einem Vergleichswert von 1024.

von Marcel (Gast)


Lesenswert?

mhh..komisch ist halt nur, dass es so funktioniert.

ich aktiviere einfach den 16 bit timer und setzte den vorteiler auf 1
und zusätzlich halt noch den timer overflow interrupt.

also sollten es dann nicht 25µs sein sondern:

0.25[µs] = 1 / 4000000[Hz] ???

von Joerg Wunsch (Gast)


Lesenswert?

Nein, 65536/4 MHz (65536 ist der timer roll over bei 16 bit)

von Marcel (Gast)


Lesenswert?

ich meinte eigentlich den einzelschritt wenn der counter von 1 nach 2
zählt usw...

von Joerg Wunsch (Gast)


Lesenswert?

Der ist natürlich schon f[clk] / Vorteiler.  Aber wo siehst Du den
denn (in der Simulation oder in der Realität)?  Du bekommst keinen
Interrupt dafür, kannst keinen Ausgang damit umschalten lassen, rein
gar nichts.  Der tickert nur intern im Timer.  Im Falle des
Vorteilers 1 passiert es oft genug, daß mehr als ein Timertick
vergeht, bevor der nächste Befehl überhaupt komplett abgearbeitet
worden ist...

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.