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 함수를 호출한다.
어제 숙제를 병용하여 시리얼포트를 이용해 출력을 하였다.
'AVR2560' 카테고리의 다른 글
2013.06.07_인터럽트에 대한 이론_ (0) | 2013.06.07 |
---|---|
2013.06.07_EEPROM에_직접_읽고/쓰기 (0) | 2013.06.07 |
2013.05.30_AVR_한글띄우기_포팅_BSD(퍼온자료_종영이형꺼) (0) | 2013.05.31 |
2013.05.30_ARM_LCD에 한글띄우기. (0) | 2013.05.30 |
2013.05.29_AVR_구조와 결선 (0) | 2013.05.30 |