-
20140514 (타이머/카운터 Reg)부산IT학원/스마트컨트롤러 2014. 5. 14. 11:45
60일차
-----------------------------
ATMega128 Timer, Counter
-----------------------------
--- Timer 관련 Reg
- 축차비교법 처럼 값이 채워지는데
이 곳에 0 ~ 255 값이 채워짐
- 비교할 때 사용함.
인터럽트 호출 방식 설정
- 7 ~ 2번 비트
Timer 2 ~ 1번 관련 비트
지금은 timer0번만 사용 중
- 1번 비트
비교 방식
비교 Reg(OCR0)와 TCNT0 의 값과 비교하여
값이 일치할 때 INT 발생
- 0번 비트
오버플로우 방식
TCNT0 의 값이
255를 넘었을 때 256(0)이 되었을 때
INT 발생
--- 오버플로우, 비교 방식
소스 비교
- 오버플로우
- 비교
...
...
TIMSK Reg에
값을 비교 방식으로 바꾸고
비교해야할 Reg OCR0 의 값을 설정해준다.
--- 실행이 되지 않은 이유
- Tc.c
- main.c
- Tc.c
volatile 을 붙이지 않아서 실행이 안됐다.
Delay_Ms(unsigned int uiDelay) 함수에
while(uiMs < uiDelay);
이 반복문이 아무 기능이 없으니 cpu 최적화로
그냥 뛰어 넘어버리는 것으로 예상된다.
그래서 최적화 방지로 volatile을 붙여주는 것으로 본다.
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140516 (초음파 모듈) (0) 2014.05.16 20140515 (초음파 모듈) (0) 2014.05.15 20140513 (타이머, 카운터) (0) 2014.05.13 20140512 (Usart, adc 신호도 Interrupt로 전환) (0) 2014.05.12 20140509 (Interrupt Reg) (0) 2014.05.09