본문 바로가기

Etc/AVR

Timer / Counter0 Control Register (TCCR0)

Timer / Counter0 Control Register (TCCR0)
TCCR0 는 Timer / Counter0 의 동작을 설정하고 프리스케일러를 설정하는 등의 기능을 수행한다.

[ FOC0 | WGM00 | COM01 | COM00 | WGM01 | CS02 | CS01 | CS00 ]

BIT7 : FOC0(Force Output Compare)
WGM 비트가 non-PWM 모드로 설정되어 있을 때 FOC0 비트는 활성화 된다. 그러나 AVR 상위 기종과 호환을 위해
PWM 모드로 동작할 때는 0으로 설정되어야만 한다.

BIT6, 3 WGM01:0(Waveform Generation Mode)
이 비트를 조절하여 Counter의 카운팅 방향, Maximum(TOP) 카운터 값의 소스 및 어떤 Waveform Generation을
사용할지를 결정한다.

Waveform Generation mode

[ Mode | WGM01(CTC0) | WGM00(PWM0) | Timer/Counter Mode of Operation | TOP | Update of OCR0 | TOV0 Flag Set-on ]

0, 0, 0, Normal, 0xFF, Immediate MAX
1, 0, 1, PWM Phase Correct, 0xFF, TOP, BOTTOM
2, 1, 0, CTC, OCR0, Immediate, MAX
3, 1, 1, Fast PWM, 0xFF, TOP, MAX

BIT 5, 4 : COM1:0 (Compare Match Output mode)
이 비트를 조절하여 OC0 핀의 동작을 조정한다. 이 핀을 출력으로 사용하기 위하여 DDR Register를 출력으로
설정하여야 한다.

- Compare output mode, non-PWM Mode
[ COM01 | COM00 | CONTENT ]
0, 0, Normal port operation, OC0 disconnected.
0, 1, Toggle OC0 on compare match
1, 0, Clear OC0 compare match
1, 1, Set OC0 on compare match

- Compare Output Mode, Fast PWM Mode
[ COM01 | COM00 | CONTENT ]
0, 0, Normal port operation, OC0 disconnected.
0, 1, Reservation
1, 0, Clear OC0 compare, set OC0 at TOP
1, 1, Set OC0 on compare, clear OC0 at TOP

- Compare output, Phase correct PWM mode
[ COM01 | COM00 | CONTENT ]
0, 0, Normal port operation, OC0 disconnected.
0, 1, Reservation
1, 0, Clear OC0 compare match when up-counting, Set OC0 on compare match when downcounting
1, 1, Set OC0 on compare, clear OC0 on compare match when downcounting

BIT 2, 1, 0 : CS02, CS01, CS00 (Clock Select 0, bit 2, 1, 0)

[ CS02 | CS01 | CS00 | DESCRIPTION ]
0, 0, 0, No clock source (Timer/Counter stopped)
0, 0, 1, clk t0s ( No prescalling )
0, 1, 0, clk t0s / 8 ( From prescalling )
0, 1, 1, clk t0s / 32 ( From prescalling )
1, 0, 0, clk t0s / 64 ( From prescalling )
1, 0, 1, clk t0s / 128 ( From prescalling )
1, 1, 0, clk t0s / 256 ( From prescalling )
1, 1, 1, clk t0s / 1024 ( From prescalling )

'Etc > AVR' 카테고리의 다른 글

SPDR (SPI Data Register)  (0) 2013.09.23
MCUCSR(MCU Control & Status Register)  (0) 2013.09.23
TCNT0 (Timer/Counter0)  (0) 2013.09.23
Asynchronous Status Register(ASSR)  (0) 2013.09.23
TCCR1B(Timer/Counter 1 Control Register B)  (0) 2013.09.23