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

//******************************************************************

//preamp_off: turn amplifier off

//******************************************************************

void preamp_off(void) {

 PORTP &= ~0x80; //установка LED-MUTE-RELAY PP7(0)

 PORTP |= 0x01; //сброс LED-PWR-RELAY PP0(1)

 PORTP |= 0x7e; //сброс светодиодов PP1-PP6(1)(0111_1110)

 //установка PT7 импульсом 10 мс

 PORTT |= 0x80; //установка PT7(1) импульсом 10 мс

 delay_5ms();

 delay_5ms();

 PORTT &= ~0x80; //сброс PT7

 delay_3s();

 PORTP = 0x80; //сброс PP7(1) LED-MUTE-RELAY

 keep_going=0;

}


//******************************************************************

//process_valid_input_PORTA: проверка состояния пульта дистанционного

//управления, длительностью не менее 50 мс

//******************************************************************

int process_valid_input_PORTA(unsigned char portx) {

 int valid_input; //установить флаг ошибочного входа

 unsigned int current_count;

 valid_input = TRUE;

 current_count = TCNT; // задать текущее состояние

 while (TCNT < (current_count+12500)) { //отследить активный вход за 50 мс

  if (portx==PORTA) valid_input = TRUE;

  else valid_input = FALSE;

  if (!valid_input) break; //цикл while

 }//end while

 return valid_input;

}


//******************************************************************

//process_valid_input_PORTB: проверка состояния переключателей на

//лицевой панели,длительностью не менее 50 мс

//******************************************************************

int process_valid_input_PORTB(unsigned char portx) {

 int valid_input; //установить флаг ошибочного входа

 unsigned int current_count;

 valid_input = TRUE;

 current_count = TCNT; // задать текущее состояние

 while (TCNT < (current_count+12500)){ //отследить активный вход за 50 мс

  if (portx==PORTB) valid_input = TRUE;

  else valid_input = FALSE;

  if (!valid_input) break; //цикл while

 }//конец while

 return valid_input;

}

//******************************************************************

//******************************************************************

8.8.3. Испытание контроллера усилителя

Проверять программное обеспечение целесообразно при работе с имитатором усилителя, как мы уже упоминали в главе 2. Воспроизведем снова схему имитатора усилителя для удобства на рис. 8.20. На дешевом имитаторе можно провести полное испытание алгоритма управления, проверив его работу при мыслимых сценариях.

Рис. 8.20. Имитатор усилителя

8.9. Другая прикладная программа: цикл опроса с прерываниями

В этой программе мы разработаем приоритетную часть системы опроса с передним планом и фоном, позволяющей предотвратить перегрев транзисторов в стереоусилителе. Система приведена на рис. 8.21. Температура транзистора постоянно контролируется датчиком температуры LM34 (в пластмассовом корпусе), приклеенным к металлическом корпусу ТО K-220 мощного транзистора. Напряжение на выходе датчика линейно связано с его температурой (коэффициент 10 мВ/С).

Рис. 8.21. Транзисторные системы обнаружения перегрева


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

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

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

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

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

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

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

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

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