2013. 5. 15. 20:40
임베디드/Arm2567SAM
이코드는 타이머 카운트를 비활성화 시켜서 초기화 시키는 부분이다.
(참고로 헤더파일에 정의(define)한다.)
1.TC0_SR; = Status Register 상태레지스터를 초기화한다. 그냥 읽기만 하면 되기
때문에 ';'만 붙이면 된다.
2. TC0_CMR = 채널 모드 레지스터
이 레지스터에서 클럭이 발생했을 때, 비교방식을 사용하겠다고
설정하는 부분이다.
TC0_CMR = (TIMER_CLOCK4<<TCCLKS)|(1<<CPCTRG);
CPCTRG = 같아질 때 까지 비교한다. =>이부분 보류
TC0_RC= 375;
위의 엑셀 파일 캡쳐를 잘보면 mck인 48Mhz를 분주비로 나눈다.
그러면 해당 주파수가 나온다. 1주기를 구하기 위해서 공식은
1/주파수 이다. 그래서 1/375000이며, 이것을 1000을 곱하여
m/s단위로 변환한다. 1m/s로 나오기 위하여 배수를
AIC_IDCR = (1<<TC0);
AIC의 레지스터에 AIC_IDCR은 타이머 카운트를
비활성화 하는 레지스터이다.(데이터 시트 참고)
TC0를 사용하기 위해서 TC0를 비활성화 하여 초기화한다.
인터럽트 핸들러 등록
AIC_SVR[TC0]= (unsigned int)Timer_Handler;
AIC_SVR[TC0]는
'임베디드 > Arm2567SAM' 카테고리의 다른 글
5월 20일 AIC (0) | 2013.05.20 |
---|---|
5월 16일 타이머 정리2(예정) (0) | 2013.05.16 |
5월 14일 타이머 정리 (0) | 2013.05.15 |
4월 29일 ADC 타이밍도 분석하기(미완성 내일 완성예정) (0) | 2013.04.29 |
4월 29일 ADC컨버전 함수만들기 (0) | 2013.04.29 |