타이머/카운터
클럭 : 동작 주파수
클럭-시간
주파수-초당 진동수
Atmega2560의 클럭 16mhz
16,000,000hz - oscillator(16.000 mhz)
1:1
빠른 CPU는?
기본외부 주파수 16mhz일때, PLL이 48mhz로 뻥튀기
PLL (phase locked loop) ; 위상 동기 루프
10진법-인간-1Mhz->1000khz
2진법-컴-1Mbyte->1024kbyte
분주비의 개념
No prescaling - 분주를 하지 않음
From prescaler 분주비 (x/n)
/1024가 세기에 가장 좋음
8bit 타이머 카운터를 만드는데는 8/64/256/1024 중에서
오차 없는 분주비 64가 최적
동작주파수 |
분주비 |
클럭당 소요시간 |
기준시간 |
카운터 |
16000000 |
1 |
0.00000006250000000000 |
0.001 |
16000.000 |
8 |
0.00000050000000000000 |
0.001 |
2000.000 | |
64 |
0.00000400000000000000 |
0.001 |
250.000 | |
256 |
0.00001600000000000000 |
0.001 |
62.500 | |
1024 |
0.00006400000000000000 |
0.001 |
15.625 |
내부 인터럽트 - 두가지 방식
over flow방식, compare방식
over flow방식
CharA=256; printf 했을 때 0
Interrupt Vectors in ATmega 2560
Table
타이머 카운터 실습
1초마다 A세기
시간 출력(00:00:03)
char caTime[]="00:00:00";
//0시 0분 0초, 2byte : 0~65535 최대 18시간 저장가능한 시계를 만들수 있다.
'0' |
'0' |
: |
'0' |
'0' |
: |
'0' |
'0' |
null |
[0] [1] 2 [3] [4] 5 [6] [7] 8 - 9개
시 : 0, 1 / 분 : 3, 4 / 초 : 6, 7
'Study > Embedded' 카테고리의 다른 글
20160322_펌웨어(USART) (0) | 2016.03.22 |
---|---|
20160321_펌웨어(UART) (0) | 2016.03.21 |
20160316-LCD출력 (0) | 2016.03.17 |
20160315-펌웨어 분석 및 학습 (0) | 2016.03.16 |
20160314-펌웨어 분석(외부 인터럽트) (0) | 2016.03.15 |