Предыдущая Следующая

Интерфейс обслуживания модуля АЦП LPC2129 реализован в проекте, все файлы которого находятся в каталоге ADC. Функции обслуживания АЦП, их заголовки и.определения находятся в файлах adc.c и adc.h, а основная программе интерфейса модуля АЦП — в файле main.c этого проекта. Программа циклически производит одиночные аналого-цифровые преобразования и организует индикацию на ЖКИ результата каждого преобразования в десятичном виде в дискретах АЦП и в милливольтах (функция ADCstart_ind_rezO)- Запуск каждого преобразования индицируется вспышкой светодиода «1». Дополнительно, программа позволяет прекратить преобразования по нажатию кнопки «1» или возобновить их по нажатию кнопки «0». При этом текущее состояние (запрет или разрешение преобразований) индицируется свечением светодиода «2». По

умолчанию, сразу после включения питания, преобразования запрещены. Чтобы начать их и инициировать вывод результата на индикацию, необходимо нажать на кнопку «О».

Файл adc.c

//------------------------------------------------------------------------

//ПО обслуживания модуля АЦП

//------------------------------------------------------------------------

#include "hardware.h" // подключение специальных заголовков и определений #include "adc.h" // подключение специальных заголовков и определений

const U16 Upit_mV = 3284; //напряжение питания V3a в мВ U16 ADCres=0; //результат АЦП в дискретах

U16 ADCres_mV=0; //результат АЦП в мВ

U8 г1000=0; //-----------------------------------

U8 г100=0; // разряды десятичного числа U8 г10=0; //

U8 rl=0; //-----------------------------------

//Функция инициализации и включения модуля АЦП void ADCinitO

{

PINSELl_bit.P0_27 = 0x01; //линию Р0.27 сделать входом АЦП (AIN0) ADCR_bit.SEL = 0x01; //выбрать для преобразований вход AIN0

ADCR_bit.CLKDIV = (int)(14745600 / 4500000) - 1; // тактовая частота АЦП,

// в зависимости от PCLK ADCR_bit.BURST =0; // программное управление АЦП

ADCR_bit.CLKS = 0; // 11 тактовых циклов на одно преобразование (10

бит)

ADCR_bit.TEST =0; // нормальный режим АЦП

ADCR_bi t.PDN =1; // модуль АЦП включить

}

//Функция запуска однократного преобразования модуля АЦП С I/и индикации результата преобразования в десятичном виде в дискретах и мВ void ADCstart_ind_rez() {

ADCR_bit.START = 0x001; // немедленно запустить преобразование

while(ADDR_bit.DONE ==0); // ожидаем окончания преобразования

ADDR_bit.CHN =0; // будем смотреть данные в канале 0

ADCres = ADDR_bit.WDDA; // получение результата АЦП в дискретах

ADCres_mV = (ADCres * Upit_mV) / 1024; //вычисление результата АЦП в мВ //преобразование в десятичное представление и индикация результата АЦП в дискретах rlOOO = ADCres / 1000; ADCres = ADCres % 1000; rlOO = ADCres / 100; - • ADCres = ADCres % 100;'-rlO = ADCres / 10; rl = ADCres % 10; lcd_pro_data(rl000,0); lcd_tek_data(rl00); Icd_tek_data(rl0); lcd_tek_data(rl);


Предыдущая Следующая






Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_309.html on line 148

Warning: include(./news.php) [function.include]: failed to open stream: No such file or directory in /var/www/picprof/data/www/picprof.com/book/book4_309.html on line 148

Warning: include() [function.include]: Failed opening './news.php' for inclusion (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/picprof/data/www/picprof.com/book/book4_309.html on line 148