A/C 컨버터
A/C 컨버터
================================= Outline ===================================
A/C 컨버터
- 분해능의 정의
- A/D 컨버터의 사용 목적
- 디지털 신호의 장점
-----------------------------------------------------------------------------
//USART의 대장급은 RS485이다.
//1024... 장이사=_=
AVR 교재 p/278,
“10비트 분해능...”이란,
0 - 5v를 10bit, 즉 1024등분할 수 있다는 뜻이다.
<A/D 컨버터의 사용 목적>
연속적인 데이터는 지속적으로 데이터화하여 정확하게 표현하는 것은 불가능하다. 때문에 연속성을 포기하고 순간의 정지된 데이터를 잘게 끊어서 표현함으로써 연속된 자료와 유사하게 표현하기 위함이다.
<Digital 신호의 장점>
Analog신호에 비해 잡음에 강하다.
<서미스터(Thermistor)>
저항 값은 온도에 따라 변할 수 있다. 저항 소자가 금속으로 만들어져 있기 때문이다.
온도에 따라 저항 값이 바뀌는 소자를 thermistor라 하고 이를 활용하여 온도계를 만들 수 있다.
<A/D 컨버터 레지스터>
A/D 컨버터 제어 및 상태 레지스터 A(ADCSRA)
비트 7 - 1로 설정하면 A/D컨버터의 모든 동작이 허용되고 0으로 설정하면 모든 동작이 금지된다.
비트 6 - 1로 설정하면 A/D 컨버터의 변환이 시작된다. 변환이 완료되면 자동적으로 0으로 클리어 된다.
비트 5 - 1로 설정하면 외부 트리거 소스에 의해 소프트웨어적으로 A/D변환이 시작, 0으로 설정하면 ADSC비트에 의해서 A/D변환이 시작된다.
비트 4 - A/D변환이 완료되어 A/D 컨버터 데이터 레지스터 값이 갱신되고 나면 이것이 1로 셋트되면서 변환완료 인터럽트를 요청한다.
비트 3 - 변환완료 인터럽트를 개별적으로 허용한다. 인터럽트 허용을 위해 ADIE = 1, SREG의 I비트가 1로 설정되어 있어야 한다.
비트 2 - 0 - 분주비 설정
A/D 컨버터 제어 및 상태 레지스터 B(ADCSRB)
비트 6 - 아날로그 비교기의 음극성 입력에 A/D 컨버터의 입력신호가 사용될 수 있도록 허용한다.
비트 3 - MUX5는 ADMUX 레지스터의 MUX 4-0 비트와 함께 A/D컨버터의 아날로그 입력 채널을 선택한다.
비트 2 - 0
A/D 컨버터 멀티플렉서 선택 레지스터(ADMUX)
/* 소스 */
<main.c>
#include "SMART.h" |
<SMART.h>
/* A/D컨버터 레지스터 */
#define ADCSRA (*((volatile unsigned char*)0x7A))
#define ADCSRB (*((volatile unsigned char*)0x7B))
#define ADMUX (*((volatile unsigned char*)0x7C))
#define ADCH (*((volatile unsigned char*)0x79))
#define ADCL (*((volatile unsigned char*)0x78))
#define DIDR0 (*((volatile unsigned char*)0x7E))
#define DIDR1 (*((volatile unsigned char*)0x7F))
#define DIDR2 (*((volatile unsigned char*)0x7D))