Курсовая работа: Устройство цифровой фильтрации на основе микроконтроллера фирмы AVR ATmega16
DDRC = 0x01; //Port C pins as output
PORTC = 0x01; //Send 0x03 to PortC output pins
}
3.3 Инициализация АЦП
За настройку работы АЦП отвечают три регистра:
· ADCSRA – регистр управления и состояния,
· ADMUX – регистр управления мультиплексором,
· SFIOR – регистр специальных функций.
Форматы регистров управления работой АЦП приведены на рис.6.
Рис.3.2 Формат регистров ADCSRA, ADMUX, SFIOR
Инициализация регистра ADCSRA :
Бит 7 ADEN =”1” включение АЦП.
Бит 6 ADSC =”1” запуск первого преобразования в режиме непрерывного преобразования.
Бит 5 ADATE позволяет выбрать режим работы АЦП
Бит 4 ADIFфлаг прерывания, устанавливается при завершении преобразования
Бит 3 ADIE=”1” разрешение прерывания по завершению преобразования
Биты 2…0 ADPS2..0=”010” выбран делитель частоты на 16, тогда при тактовой частоте контроллера 2 МГц, частота тактов АЦП будет составлять 125 кГц, использование такой частоты позволяет увеличить точность преобразования.
Инициализация регистра ADMUX :
Биты 7,6 REFS1:REFS0= “11” при этом в качестве опорного напряжения используется внутренний источник с Uоп = 2,56 В.
Бит 5 ADLARрезультат преобразования выравнивается по левой границе 16-ти разрядного слова
Биты 4..0 MUX4..0 управляют входным мультиплексором, а так как у нас используются входы ADC1, то эти разряды могут принимать значение “00001” .
Инициализация регистра SFIOR :
Биты 7..5 ADTS2..0=”000” определяют режим непрерывного преобразования. В процессе выполнения которого есть возможность изменять содержимое разрядов MUX2..0, что позволяет осуществлять последовательное преобразование сигналов нескольких каналов.
Бит 4 ADHSM=”0” при “1” увеличивает скорость работы АЦП, однако в этом мы не нуждаемся.
Результат преобразования будет определяться выражением:
ADC=1024*Vin /Vref
void Init_ADC(void)
{
ADCSRA |= (1 << ADIE); //Enable ADC Interrupt
ADCSRA |= (1 << ADPS1); //ADC Timing /16
ADCSRA |= (1 << ADEN); //Enable ADC