kann nicht in TCNT2 schreiben? Atmega168

OP #2299349
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?
Gast #2299377
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
OP #2299417
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren