본문 바로가기

취미

A/D 컨버터 사용법

아날로그 디지털 변환기(A/D 컨버터)는 센서와 같은 소자에서 들어오는 아날로그 값을 디지털 값으로 변경하는 기능을 가지고 있으며, 실제 제어기를 구성할 때 없어서는 안될 소자이다.

Atmega128의 경우 10비트 축차 근사형의 A/D 컨버터를 8개 내장하고 있다. 실질적으로 A/D 컨버터는 한개이며, 채널을 바꿔가며 아날로그 신호를 입력받을 수 있다.

A/D 컨버터를 제어하기 위한 레지스터로는 아날로그 디지털 멀티플렉서 선택 제지스터(ADMUX)와 아날로그 디지털 컨버터 제어 상태 레지스터(ADCSR)가 있다. ADMUX는 A/D 신호를 입력받을 채널을 0에서 7까지 선택한다. 그리고, 변환 채널이 선택되면 ADCSR을 설정하여 컨버전 프리스케일러 설정, 컨버터 완료 인터럽트를 설정한다. 모든 설정이 끝나면 전역 인터럽트 플래그를 '셋'하여 인터럽트를 활성화한다. 아날로그 디지털 변환 완료 인터럽트 처리 루틴을 구성한 후, ADCSR의 6번 비트를 셋시켜 A/D 변환을 시작하게 한다.

변환이 시작한 후 변환 완료 플래그를 주기적으로 점검하거나 아날로그 디지털 변환 완료 인터럽트를 이용하여 A/D 컨버전 이후의 데이터 처리 루틴을 구성할 수 있다. 변환이 종료되어 변환 데이터를 저장할 때, 반드시 하위 데이터를 먼저 읽어서 저장해야 한다. 왜냐하면, 상위 데이터를 먼저 읽으면, 하위 데이터에 쓰레기 값이 들어갈 수 있기 때문이다.

'취미' 카테고리의 다른 글

"잉글랜드가 월드컵 우승을 한다면?"이라는 설문조사를 본뜬 나의 대답  (1) 2010.05.19
문리바  (0) 2010.04.28
USART  (0) 2010.03.22
야구의 불모지! 울산!  (2) 2009.10.19
송타미 화이팅  (0) 2009.07.13