Читаем Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С полностью

/* значение напряжения, а затем преобразует результат в коды ASCII для */

/* вывода на экран                                                     */

/*---------------------------------------------------------------------*/

void ADC_convert(void) {

 unsigned int sumadr;

 unsigned int avg_bin_voltage;

 unsigned int int_voltage;

 unsigned int ones_int;

 unsigned int tenths_int;

 unsigned int hundreths_int;

 char ones;

 char tenths;

 char hundreths;

 ATDCTL5 = 0х06; /*4 преобразования в последовательности, канал 6*/

 /* Ожидать завершения измерительной последовательности*/

 while((ATDSTAT & 0х8000) != 0х8000) {

  ;

 }

 /* Вывести коды преобразования на экран для контроля */

 printf("%x %x %х %х\n" , ADR0H, ADR1H, ADR2H, АDR3Н);

 /* Взять среднее от 4 измерений для устранения шума*/

 sumadr = ADR0H + ADR1H + ADR2H + ADR3H;

 avg_bin_voltage = sumadr/4;

 /*Преобразовать результат из двоичного кода к абсолютному значению,*/

 /* умноженному на 100 D, получится число в диапазоне от 0 до 500 D*/

 int_voltage = (100*avg_bin_voltage/255) * 5;

 /*Выделить старший разряд результата и преобразовать в код ASCII */

 /* Правило преобразования: десятичная цифра +48*/

 ones_int = int_voltage/100;

 ones = (char) (ones_int + 48);

 /*Выделить второй разряд результата (десятые доли) и преобразовать в

   код*/

 /* ASCII */

 tenths_int = (int_voltage ones_int*100)/10;

 tenths = (char) (tenths_int + 48);

 /*Выделить третий разряд результата (сотые доли) и преобразовать в

   код*/

 /* ASCII */

 hundreths_int = (int_voltage ones_int*100 tenths_int*10) / 1;

 hundreths = (char) (hundreths_int + 48);

 /*Вывести значение измеренного напряжения на экран */

 printf("%c.%c%cV\n", ones, tenths, hundreths);

}


/*-----------------------------------------------------------------------*/

/* Функция delay_100us формирует задержку в 100 мкс, частота тактирования*/

/* межмодульных магистралей МК составляет 8 МГц                          */

/*-----------------------------------------------------------------------*/

void delay_100us(void) {

 int i;

 for (i=0; i<50; i++) {

  asm("nop");

 }

}


/*------------------------------------------------------------------*/

/* Функция delay_5ms формирует задержку в 5мс, частота тактирования */

/* межмодульных магистралей МК составляет 8 МГц                     */

/*------------------------------------------------------------------*/

void delay_5ms(void) {

 int i;

 for (i=0; i<50; i++) {

  delay_100us();

 }

}

/*------------------------------------------------------------------*/

4.22.4. Обслуживание прерываний от модуля ATD

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

Похожие книги

C# 4.0: полное руководство
C# 4.0: полное руководство

В этом полном руководстве по C# 4.0 - языку программирования, разработанному специально для среды .NET, - детально рассмотрены все основные средства языка: типы данных, операторы, управляющие операторы, классы, интерфейсы, методы, делегаты, индексаторы, события, указатели, обобщения, коллекции, основные библиотеки классов, средства многопоточного программирования и директивы препроцессора. Подробно описаны новые возможности C#, в том числе PLINQ, библиотека TPL, динамический тип данных, а также именованные и необязательные аргументы. Это справочное пособие снабжено массой полезных советов авторитетного автора и сотнями примеров программ с комментариями, благодаря которым они становятся понятными любому читателю независимо от уровня его подготовки. Книга рассчитана на широкий круг читателей, интересующихся программированием на C#.Введите сюда краткую аннотацию

Герберт Шилдт

Программирование, программы, базы данных
Разработка приложений в среде Linux. Второе издание
Разработка приложений в среде Linux. Второе издание

Книга известных профессионалов в области разработки коммерческих приложений в Linux представляет СЃРѕР±РѕР№ отличный справочник для широкого круга программистов в Linux, а также тех разработчиков на языке С, которые перешли в среду Linux из РґСЂСѓРіРёС… операционных систем. РџРѕРґСЂРѕР±но рассматриваются концепции, лежащие в основе процесса создания системных приложений, а также разнообразные доступные инструменты и библиотеки. Среди рассматриваемых в книге вопросов можно выделить анализ особенностей применения лицензий GNU, использование СЃРІРѕР±одно распространяемых компиляторов и библиотек, системное программирование для Linux, а также написание и отладка собственных переносимых библиотек. Р

Майкл К. Джонсон , Эрик В. Троан

Программирование, программы, базы данных