Основы программирования микроконтроллеров ATMega128 и 68hc908. Китаев Ю.В. - 62 стр.

UptoLike

Составители: 

Оптимальным значением тактовой частоты аналого-цифрового
преобразователя Fa является частота порядка 1МГц. Эта частота
обеспечивается путем деления тактовой частоты Ft (при значении бита
ADICLK = 1) или частоты кварцевого резонатора Fq (при значении бита
ADICLK = 0). Необходимое значение коэффициента деления Kadc = Ft/Fadc
или Kadc = Fq/Fadc задается установкой битов ADIV2-ADIV0 в регистре
ADCLK в соответствии с таблицей 2.5. Для выполнения одного цикла
преобразования требуется 17 тактов, поэтому в случае Fa = 1 МГц время
преобразования составляет 17 мкс, а в общем случае Tпреобр = 17 / Fadc.
Результат преобразования помещается в регистр данных АЦП - ADR:
7 6 5 4 3 2 1 0
AD7 AD6 AD5 AD4 AD3 AD2 AD1 AD0
9.4 НАСТРОЙКА РЕГИСТРОВ СПЕЦИАЛЬНЫХ ФУНКЦИЙ АЦП
В лабораторной работе датчик напряжения Uвх (он же датчик угла
поворота) подключен к 7-му входу АЦП (рис. 2.7), поэтому значения битов
ADCH4..0 регистра ADSCR равны 00111(BIN)=7(DEC).
Рис. 2.7. Подключение потенциометра к 7-му каналу АЦП
Чтение кода напряжения и запуск АЦП (кроме первого запуска) будем
производить в обработчике прерывания, поэтому для разрешения
прерываний в бит AIEN запишем 1. Также установим однократное
преобразование (повторные пуски АЦП в обработчике) бит ADCO=0. В
соответствии с этим значение регистра ADSCR должно быть равно 47(HEX).
Тактовую частоту АЦП Fadc (рис. 2.6) выберем не превышающую
1МГц. В качестве источника частоты выберем частоту кварцевого резонатора
Fq (сигнал CGMXCLK). В стенде Fq=4.915.200Гц, поэтому коэффициент
деления Kadc сделаем равным 8-ми. При этом биты ADIV2..0 = 011(BIN), а
бит ADICLK=0. Т.е. в регистр ADCLK нужно записать код 60(HEX).
Соответствующий фрагмент процедуры инициализации и обработчик
прерывания будут выглядеть следующим образом:
InitDevices(){//== установка режимов работы портов и периферии
................................
ADCLK=0x60; //== задаем тактовую частоту АЦП - ADIV1,0=1(Fq/8),
62