8비트 타이머카운터 정리

2019. 6. 14. 19:25임베디드/ATmega128

타이머카운터 0, 2

파형출력핀은 OC핀 기준

 

1. 블록다이어그램에서의 차이

- 추가적인 클럭으로 0번은 외부 오실레이터, 2번은 외부 클럭을 달 수 있다. 단, 2번 외부 클럭은 분주 불가능 그리고 0번은 단독적인 외부 오실레이터를 제어할 수 있는 ASSR 레지스터를 가진다

 

2. 비교일치 인터럽트때만 파형 발생 출력모드를 바꿀 수 있다. COMn1, COMn0핀을 통해서. 오버플로우 인터럽트 때는 ISR안에서 파형 출력을 조절해야만 한다

 

3. 16비트를 써야만 하는 경우: 만일 비교일치로 toggle을 시키고 싶으면 최대 1/16M * 255 * 1024 = 16ms의 시간의 제한이 걸린다

 

4. CTC와 normal의 차이

- TCNT0 초기화 유무만 차이가 있지, 파형은 1:1밖에 발생시키지 못한다

 

5. PWM을 사용하는 이유

- 1:1의 한계를 벗어나 duty 사이클을 변화시킬 수 있다

 

물론 코드를 짜면 3,4번은 가능하게 할 수 있는 부분이지만 다른 설정을 사용해서 짠 코드와 비교하면 복잡한 코드가 될 것이기 때문에 안된다라고 하는 편이 나은 것 같다