타이머/카운터2(이하 T/C2)는 T/C0와 마찬가지로 8비트로 동작하고 그 계수값은 TCNT2 레지스터에 저장된다. 하지만 T/C0와 비교해서 T/C2는 다음과 같은 몇 가지 기능을 더 가지고 있다.
비교매치 (compare match) 시 TCNT2 클리어.
PWM (pulse-witdth modulator) 파형 발생.
TOSC0/TOSC1 외부 핀에 32.765KHz 리얼타임클럭을 연결하여 사용 가능.
T/C0에서는 TCNT0레지스터의 값은 항상 $00에서 시작해서 $FF(255)까지 증가했다가 다시 $00으로 돌아가서 증가를 계속했으며 그 중간에서 다시 0으로 되돌릴 수 없었다. 즉, 사용자가 원하는 숫자에 도달하면 0으로 되돌리거나 혹은 그 시점에서 인터럽트를 발생할 방법이 없었다. 비교매치는 이러한 기능을 수행한다. 다음 [그림 1]에서 보면 OCR2레지스터가 있는데 여기에 저장된 값과 TCNT2값이 같은 시점에서 인터럽트를 발생하거나 OC2핀(17번 핀)으로 구형파를 내보낼 수 있다.
[그림 1] T/C2의 기능별 블럭도
PWM(pulse-width modulation)은 led의 밝기 제어나 dc모터의 속도 제어 등에 사용되는 매우 중요한 기능 중 하나이다.. PWM 발생기는 구형파가 ‘1’이 되는 구간과 ‘0’이 되는 구간의 비율을 사용자가 조정할 수 있으며 이 비율을 듀티비(duty ratio)라고 하는데 모터의 속도제어와 같은 분야에서 중요하게 사용된다. PWM발생모드는 크게 두 가지로 나뉘는데 고속 PWM모드와 위상교정(phase correct) PWM 모드이다. 이에 대해서는 이후에 더 자세히 설명할 것이다.
[그림 2] T/C2와 관련된 핀들
T/C2의 동작은 [표 1]과 같이 크게 세 가지로 분류할 수 있으며 각각의 모드는 TCCR2의 WGM20:1 두 비트를 설정함으로서 선택할 수 있다.
[표 1] T/C2의 세 가지 동작 모드 요약
T/C2의 클럭 소스는 시스템 클럭 clk와 외부핀 TOSC1:2 으로 인가되는 외부클럭(32.765KHz) 두 가지 중 하나를 선택할 수 있으며 T/C1과 달리 프리스케일러를 사용하지 않는다. ASSR 레지스터의 AS2비트가 ‘1’로 세트되면 후자가 선택된다.
'하드웨어 > ATmega8(A)' 카테고리의 다른 글
ATmega8(A) T/C2의 정상 모드와 CTC 모드 (0) | 2015.06.23 |
---|---|
ATmega8(A) T/C2의 레지스터와 프리스케일러 (0) | 2015.06.23 |
ATmega8(A) T/C0의 레지스터와 프리스케일러 (0) | 2015.06.23 |
ATmega8(A)의 타이머/카운터와 T/C0 개요 (0) | 2015.06.23 |
ATmega8(A)의 외부 인터럽트를 이용한 전자 주사위 구현 (0) | 2015.06.22 |