Forum: Mikrocontroller und Digitale Elektronik 96 cyc. bei Prescaler 8. Welchen Wert für OCR1A?


von Johannes Permoser (Gast)


Lesenswert?

hi,

mein timer1 soll nach 96 taktzyklen einen overflow interrupt auslösen.
deshalb habe ich ihn in den ctc-modus versetzt und den prescaler auf 8
eingestellt.

nun frag sich nur noch was der richtige wert für ocr1a ist:

kommt da jetzt 96/8 = 12 rein, oder (96/8)-1=11 rein, weil der timer ja
bei 0 anfängt, und, wenn er auf 11 steht, diese noch ganz auszählt?

mein hilfsprogramm (avrcalc) gibt mir die erste lösung, ich tendiere
eher zur zweiten.

mfg, johannes

von Jan M. (mueschel)


Lesenswert?

12 müsste passen: Der Timer wird zurückgesetzt, sobald er 12 wird. Und
von 0.0 bis 12.0 sind es genau 12 Zyklen.

von Johannes Permoser (Gast)


Angehängte Dateien:

Lesenswert?

hab nochmal ein bisschen im manual des atmega8 gesucht und das diagramm
im anhang gefunden.

daraus kann ich entnehmen, dass, wenn im TCNT 12 steht, nochmal 8
zyklen durchlaufen werden. und dass, wenn TCNT = 0, auch nochmal 8
zyklen durchlaufen werden.

=> TCNT von 0-11: 12*8 cyc., wenn TCNT = 12: 8 cyc.
=> insgesamt 13*8 = 104 cyc.
=> richtiger wert für OCR1A wäre 11

hab ich das richtig interpretiert?

von Sonic (Gast)


Lesenswert?

11 ist schon richtig, da der 16-bit-Timer bei 0 auf low bleibt, bei 1
für 8 Taktzyklen auf high und erst bei 65535 ganz auf high bleibt. Es
wird immer mit 0 angefangen zu zählen.
Du kannst da ja mit der Stopuhr im AVR-Studio ausmessen.

von Läubi (Gast)


Lesenswert?

warum nimmst nicht CLK direk und stellst den ctc auf 96 ??

von Sonic (Gast)


Lesenswert?

Oder frag' den Zählerstand in der INT-Funktion ab, dann weißt du's
genau!

von Johannes Permoser (Gast)


Lesenswert?

> warum nimmst nicht CLK direk und stellst den ctc auf 96 ??

weil auch das falsch wäre :-) (müsste auf 95 stellen)

warum ich mit prescaler 8 arbeite?
keine ahnung, wollte einfach die fähigkeiten des µC voll ausnutzen :-)

von Läubi (Gast)


Lesenswert?

von miraus 96... aber den prescaler nur nutzen weil er da ist = ??

von Läubi (Gast)


Lesenswert?

hm.. sollte 96 oder 95 heißen :(
Auf jedenfall wüßte ich nicht wozu man hier ne Prescaler braucht.

von Sonic (Gast)


Lesenswert?

Ob man den benutzt oder nicht is' wurscht! Das Ergebnis ist das
Gleiche! Würde ich wegen nicht Teilbarer Werte benutzen, ansonsten,
wie's beliebt ..

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.