아트메가/이론

아트메가128 타이머/카운터란?

원원 2017. 8. 6. 13:22

안녕하세요. 타이머/카운터의 기본 개념에 대해 알아보겠습니다.

기본적으로 타이머/카운터를 사용하는 이유는 펄수를 계수하기 위함입니다.

아트메가128에는 4개의 타이머/카운터가 있습니다. 이 4개는 타이머 혹은 카운터가 됩니다.





타이머란?

1. 타이머란 시스템 클럭의 변화를 감지합니다.

2. 동기모드입니다,

3. 일정시간 간격의 펄스를 만들어 내거나 일정한 시간 경과 후에 인터럽트를 발생시키는 기능을 합니다.


카운터란?

1. 외부 입력의 변화를 감지 합니다,

2. 비동기모드입니다,

3. 외부핀(TOSC1, ROSC2,T1,T2,T3)을 통해 들어오는 펄수의 수를 개수하여 이벤트 카운터로 동작합니다.



위에서 타이머/카운터가 4개있다고했는데, 번호를 0,1,2,3으로 붙인다. 타이머/카운터0,2는 8비트이고 타이머/카운터1,3은 16비트입니다.

8비트는 2의 8승, 즉 256개의 펄스를 프로세서 도움 없이 계수할 수 있고 16비트는 2의 16승, 즉 65536개의 펄스를 프로세서의 도움없이 계수할 수 있습니다.

Prescaler는 최대 1024까지 분주할 수 이습니다. 분주하는 이유는 고속으로 들어오는 펄스를 계수하기 어렵기 때문입니다. 


Control Logic은 우측에서 들어오는 펄수를 계수하는 장치입니다. 그 결과 값을 우측 TCNT에 저장합니다. Control Logic에서 count신호면 증가하고 clear신호면 0으로 클리어 시켜주고, direction신호에 따라서 증감됩니다. 이렇게 계수하다가 비트가 가득 차면 TOVn(오버플로우)가 발생하게 됩니다.




타이머/카운터에는 크게 Normal모드, PWM모드, CTC모드가 있고 인터럽트에는 OVF,OCM이 있습니다.


Normal모드

파형을 출력하지 않음


PWM모드

PWM모드는 파형을 일정한 주기로 출력하는 것입니다. 모터 속도 조절, LED밝기 조절에 사용됩니다.


CTC모드 (Clear Timer on Compare Match)

CTC모드는 원하는 주파수를 발생시키는 것입니다. 시계, 멜로디 발생에 사용됩니다.




OVF 인터럽트(OverFlow)

TCNT가 가득 차면 OVF 인터럽트가 발생됩니다.



OCM 인터럽트(Output Compare Match)

TCNT와 특정값이 같으면 인터럽트가 발생됩니다.



1.아트메가128 타이머/카운터0 overflow interrupt사용하기 

2.아트메가128 타이머/카운터0 compare match interrupt사용하기

3.아트메가128 타이머/카운터0 CTC 모드 알아보기

4.아트메가128 타이머/카운터0 Fast PWM모드 알아보기

5.아트메가128 타이머/카운터0 Phase Correct PWM모드 알아보기

6.아트메가128 타이머/카운터0 주파수 알아보기