▶ ARM_조도센서활용(1)
<그림1>
ADC를 활성화 시켜주기위해서 #define PMC_PCER 로 ADC가 포함되어있는 Peripheral identifier ( 주변 장치 )의 주소를 찝어주었고, <그림2> 와 같이 PMC_PCER = 1<<ADC_ID 를 선언해서 ADC를 활성화 시켜주었다. ADC 의 주변 장치번호는 <그림3>에 있다. |
<그림2>
<그림3>
<그림4>
ADC Control Reg 를 이용해서 Conversion(A ->D) 해주기 위해서 ADC_CR 에 있는 RESET 을해주는 레지, START 해주는 레지를 <그림1>에 정의해주었다. |
SWRST 는 offset - 0 번째, START 는 offset - 1번째 떨어져있다. 먼저 RESET 을 해주기 위해서 <그림2> 와 같이 ADC_CR = 1<<SWRST |
ADC_CR(이라는레지스터) = 1(이라는값을) << SWRST(0번만큼 왼쪽으로 쉬프트)해주었다. |
이제 LED를 활용할 것이기 때문에 ADC_CHER ( ADC 채널 핀 ) 중에서 4번핀( AD4 = CH4 )을 선택하였다. 구분을 쉽게 하기위해 <그림1> 과 같이 LIGHT 라고 정의해주었고, <그림2> 와 같이 코딩을 해주었다. |
ADC_CHER(ADC 채널핀중에서) = 1(의값을)<<LIGHT( CH4를 지정해줬으므로 4번옮겨서넣을것이다 ) |
<그림5>
LED를 활용할 핀을 CH4 로 지정해주었고, 이제 원하는 값의 크기를 집어주기위해서 PRESCAL 을 이용하여 분주율을 약 4Mhz로 설정해주었다. 그리고 LOWRES 를 이용하여 분해능을 10bit 로 맞춰주었다. |
<그림2> 에 ADC_MR(ADC 모드 레지를) = (5(의값을넣어서)<<PRESCAL(왼쪽으로 8칸이동) |(OR) (0(의값을넣어서)<<LOWRES(왼쪽으로4번이동)) 를 설명 |
<그림6>
위의 과정을 그래프로 그림으로 나타내면 <그림6> 에서 ADC_CR 의 START 를 이용해서 ①Conversion 시작! |
②Conversion Time 이 지나면 데이터를 읽을 준비가됨 High! |
③ADC_CDR4에서 데이터를 읽으면 ADC_SR(상태레지스터가)이 Low가됨! |
④이를 반복하다가 쓰고있는 채널의 Conversion 이 종료되면 제일 마지막 최근부분에 ADC_LCDR에도 저장이 가능함! 여기서 ADC_LCDR은 제일 최근까지의 DRDY와 EOCx 두개의 데이터를 가진다. |
DRDY 같은 경우는 EOCx 와 다르게 Conversion Time 이 지나도 종료되기전까지 계속 High 상태로 유지된다. EOCx 와 DRDY 는 쓰임이 다를뿐이다. |
'AT91SAM7S256' 카테고리의 다른 글
2013.05.07_Debug Unit(UART) (0) | 2013.05.07 |
---|---|
2013.04.30_ADC_RUN_설정하기 (0) | 2013.05.02 |
2013.04.26_ARM칩_LCD에 숫자입력받기_ADC초기화설정하기 (0) | 2013.04.26 |
2013.04.25_깨알팁_폰트테이블_ (0) | 2013.04.25 |
2013.04.25_타이밍도이용딜레이최적화_문자열출력하기_ (0) | 2013.04.25 |