블로그 이미지
송시혁

calendar

1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Notice

Tag

Recent Post

Recent Comment

Recent Trackback

Archive

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]는 















posted by 송시혁