Forum: Mikrocontroller und Digitale Elektronik kann nicht in TCNT2 schreiben? Atmega168


von Erik B. (bibabulks)


Lesenswert?

Hallo liebe Freunde,

Bin ziemlich am verzweifeln, da ich in das TCNT2 - Register meines 
Atmega168 keine Startwerte einschreiben kann. Ziel ist es über den 
externen 20MHz Quarz ein 1Hz Signal zu erzeugen. Beim Rumspielen hab ich 
aber festgestellt, dass er Änderungen des Prescalers annimmt, nicht die 
Eintragungen in das Register TCNT2. Da läuft er immer von 0 bis 2^8. 
Hmmhmm Der Timer läuft im normalen Modus...

sbi(TCCR2B,0);
cbi(TCCR2B,1);
sbi(TCCR2B,2);
TCNT2 = 200;      // Startwert des Zählers auf 200
cbi(TCCR2B,3);
sbi(TIMSK2,0);


Geht das prinzipiell nicht mit dem TIMER2?

von spess53 (Gast)


Lesenswert?

Hi

>Bin ziemlich am verzweifeln, da ich in das TCNT2 - Register meines
>Atmega168 keine Startwerte einschreiben kann.

Kann man schon. Nur reicht es nicht das einmal zu machen, da der Zähler 
beim nächsten Overflow wieder bei Null anfängt. Wenn du dieses 
Vorladegedödel benutzen willst, must du den Overflow-Interrupt 
aktivieren und in der Interruptroutine neu laden. Oder du machst es 
richtig und nimmst CTC.

MfG Spess

von Erik B. (bibabulks)


Lesenswert?

Das ist die Lösung . . . Vielen Dank.
Hatte es in der ISR-drin aber da war auch ne zählroutine enthalten, die 
eben noch ein paar Overflows gezählt hat und es wurde es nach dem 
letzten mal rückgesetzt. . . und nicht jedesmal...
Vielen Dank, dass du mir die Tomaten weggenommen hast. Danke

von Erik B. (bibabulks)


Lesenswert?

closed-

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.