본문 바로가기
코스웨어/13년 스마트컨트롤러

2013-06-05 수업내용 전영기

by 알 수 없는 사용자 2013. 6. 5.
728x90
반응형

ATmega2560의 ADC 사용





ADC 설정이다.

ADC_Convert 함수앞에 static을 붙여서 다른 소스파일에서 호출을 막았다.

ADLAR은 AD변환시 어떻게 저장되는지 설정하는 비트이다.


ADLAR = 0

ADCH

-

-

-

-

-

-

9

8

ADCL

7

6

5

4

3

2

1

0



ADLAR = 1

ADCH

9

8

7

6

5

4

3

2

ADCL

1

0

-

-

-

-

-

-


예를 들어 325란 숫자를 저장하면

325의 2진수는 0101000101임으로



ADLAR = 0  일 때

ADCH

-

-

-

-

-

-

0

1

ADCL

0

1

0

0

0

1

0

1

저장되고

ADLAR = 1 일 때

ADLAR = 1

ADCH

0

1

0

1

0

0

0

1

ADCL

0

1

-

-

-

-

-

-

로 저장된다.


REFS는 기준전압 설정으로

위 설정으로 AVCC설정이다.

즉 AVCC는 5V임으로 5V 일 때 1023이 된다.

MUX는 채널설정이다.

uiCH라는 변수에 채널을 입력하는 그 채널에 입력받은 아날로그 값을 즉각 디지털로 바꿀 수 있게 함수를 만들었다.

MUX5는 ADCSRB에 있다.

그래서 위와 같이 설정한다.


ADPS 로 분주비를 설정하고 ADEN으로 ADC를 활성화 시킨다.

ADSC를 1로하여 변환을 시작한다.


while문으로 AD변환이 완료될때까지 지연..

ADIF는 AD변환이 완료되면 1로 변하는 플래그비트이다.


SENSOR함수들에는 각각 채널을 입력하여 ADC_Convert 함수를 호출한다.





어제 숙제를 병용하여 시리얼포트를 이용해 출력을 하였다.










728x90