-
20140513 (타이머, 카운터)부산IT학원/스마트컨트롤러 2014. 5. 13. 17:30
59일차
----------------------------
ATMega128 타이머/카운터
----------------------------
--- 타이머/카운터 (8bit)
타이머와 카운터는 그 매커니즘이 같아서 같이 설명을 한다.
회로에 ADC에 축차비교처럼 (8bit) 크기의 공간이 있어
cpu의 1클록당 1씩 채운다.
8bit가 255가 제일 큰 수 이니
이 공간을 다 채우는데 255클록 이라는 시간이 걸린다.
그리고 그 끝에 도달하거나, Reg에 설정해둔 값에 도달했을 때
Interrupt를 발생시켜 IRQ(Interrupt ReQuest, 인터럽트 함수)를 실행시킨다.
--- Clock Prescaler
cpu clock 초당 클록 : 16,000,000 Hz
- 1클록당 걸리는 시간
0.000 000 0 625 (초)
0.000 0625 ms (밀리 초)
0.0625 ㎲ (마이크로 초)
62.5 ns (나노 초)
- prescale 값을 8을 줬을 경우
8 클록당 타이머 카운터 공간에 1을 채움.
1을 채우는데 걸리는 시간
0.000 000 5 (초)
0.000 5 ms (밀리 초)
0.5 ㎲ (마이크로 초)
500 ns (나노 초)
255 다 채우는데 걸리는 시간
127500 ns
= 127.5 ㎲
- prescale 값을 64로 줬을 경우
64 클록당 타이머 카운터 공간에 1을 채움.
1을 채우는데 걸리는 시간
0.000 004 (초)
0.004 ms (밀리 초)
4 ㎲ (마이크로 초)
4000 ns (나노 초)
255 다 채우는데 걸리는 시간
1020 ㎲
= 1ms
64클록 옵션으로 사용할 경우
1초에 약 1000번 호출이 되니
시간 계산용으로 쓰기 용이하다.
--- 클록 값 바꿔서 속도 조절
그래서 CS02 ~ 00 값은 클록을 설정해주는 값인데
64 값으로 설정.
'부산IT학원 > 스마트컨트롤러' 카테고리의 다른 글
20140515 (초음파 모듈) (0) 2014.05.15 20140514 (타이머/카운터 Reg) (0) 2014.05.14 20140512 (Usart, adc 신호도 Interrupt로 전환) (0) 2014.05.12 20140509 (Interrupt Reg) (0) 2014.05.09 20140508 (Interrupt, 서적관리 프로그램 작성, open) (0) 2014.05.08