Chapter 7: Microcontroller Interrupts and Timers
he Ti gister B, TCCR1B and the Timer/Counter2
re set to start timer1 and timer2 with no<CS10);egisters we wait for the TCNT2 and the TCRU2B registers
ter2 Update
usy, T
e ASS) | (ASSR & 0x04));it a z;LL T TING YET!r can be ae start calibrating by running a loop in which you make adjustments to the
terna ernal clock, looping untilt a fllibrate = FALSE;T mer/Counter1 Control Re
Control Register A, TCCR2A, a
prescaling:
TCCR1B = (1<
TCCR2A = (1<<CS20);After setting all these r
to be set from temporary memory, by waiting for the Timer/Coun
B CN2UB, and the Timer/Counter2 Update Register Busy,TCCR2A, bits of
th R register to be cleared (p 139 data book).
while((ASSR & 0x01Wa while for the crystal to stabili e:
Delay(1000)A HIS AND WE HAVEN’T EVEN STARTED CALIBRA
Getting registers set properly to do much of anything in a microcontrolle
long and frustrating exercise, and another good reason to steal code where
possible.
W
in l oscillator and comparing the results to the ext
you get it right.
Se ag:
unsigned char cato terminate the loop when true:
while(!calibrate)On each pass you do the following: