Разработка программы для микроконтроллера

RI = 1; // Transmit & Recive=0x0;// UART interrupts only

// Настроить A/D to sequentially convert each input channel.

ADCCON1 = 0x7C; // 0111 1100

Так как микроконтроллер не имеет своей операционной системы, возникает необходимость реализовать цикл бесперебойной работы микроконтроллера от момента запуска оператором до момента остановки, опять же, оператором. Для этого создадим бесконечный цикл, в котором и будет происходить обработка всех поддерживаемых действий (например - оцифровка, смена номера канала и т.д.). На языке Си это будет выглядеть следующим образом:

do

{

…// здесь будет расположена большая часть кода

}

While(1)

В основном цикле программы будут выполняться следующие действия:

1. чтение состояния клавиатуры;

. проверка нажатия цифровой клавиши;

. проверка ошибки выбора канала;

. задание номера канала для оцифровки;

. запуск АЦП и ожидание от него данных;

. запись данных в память;

. передача данных и номера канала на ПК;

. изменение состояния светодиодов в соответствии с оцифрованным каналом.

Это минимально необходимые действия для нормального функционирования системы:

unsigned int conv_val = 0;char channel = 0;char c=0;(ScanKBOnce(&c))

NumChanel=chrtoint(c);(NumChanel>8)// каналы больше 8го не обрабатываем=255;(NumChanel!=255)// 255 - ошибка выбора канала

{

// начать преобразование и дождаться завершения

ADCCON2 = (ADCCON2 & 0xF0) | NumChanel;= 1;(ADCCON3 & 0x80);

// Чтение A/D данных= ADCDATAH >> 4;_val = ADCDATAL | ((ADCDATAH & 0x0F) << 8);

// вывод на терминал(NumChanel==8)

{= (675-conv_val*0.61)/3;("ADC Channel %d = %f C\n", NumChanel,value2);

}else

{("ADC Channel %d = 0x%X\n", NumChanel,conv_val);

}

}else

{

printf("Error selection channel\n");

}

// выведем оцифрованное значение

/*

зажигаем светодиот соответствующий номеру канала

который в данный момент оцифровываем

*/

svet=convert(NumChanel,0);(0x7,svet);//вывод на светодиды

for(pause=0;pause<=64000;pause++);// задержка

Полный листинг программы, а также доработанная версия с использованием таймера/счетчика (с подробными комментариями описания каждого участка программы) приведены в приложении А.

Перейти на страницу: 1 2 

Похожые стьтьи по экономике

Анализ электромагнитного поля в прямоугольном волноводе
В полой трубе прямоугольного сечения (рис. 1) с идеально проводящими стенками создано монохроматическое электромагнитное поле. Труба заполнена однородной изотропной средой без потерь, а ...

Автономное регулирование
Развитие систем управления ДВС характеризуется автоматизацией все большего числа процессов и режимов: пуск и прогрев двигателя; минимальные крейсерские и номинальные режим ...

Судовые автоматизированные электроэнергетические системы
В данном проекте рассчитывается судовая электроэнергетическая система сухогрузного теплохода. За основу взят проект ФИН 100/800 с использованием новых серий электродвигателей. Головно ...

Разделы

© 2020 - www.frontinformatics.ru