20140513 (타이머, 카운터)

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 값으로 설정.



설정

트랙백

댓글