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

//4. Включить "LED-xxxxx" (PP1-PP6) (в соответствии с выбором

// "WHICH-INPUT")

//5. Очистить Old/Input сохранить новое значение "WHICH-INPUT"

//6. DE-переключение "MUTE-RELAY" (PP7) примерно через 3 с.

//7. Перейти к последовательности "SCAN"

//

// последовательность "MUTE":

//1. Переключить "LED-MUTE-RELAY" (PP7)

//2. Перейти к последовательности "SCAN"

//

//Последовательность "PREAMP OFF":

//1. Включить "LED-MUTE-RELAY" (PP7)

//2. DE-переключение "LED-PWR-RELAY" (PP0)

//3. DE-переключение всех светодиодов (PP1-РР6)

//4. Включить PT7(1) импульсом 10 мс

//5. DE-переключение "LED-MUTE-RELAY" (PP7) примерно через 3 с.

//6. Перейти к последовательности "PREAMP ON"

//

//авторы: Steven Barrett и Daniel Pack

//Дата разработки: 19 июня 2004

//Последняя редакция: 20 июня 2004

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


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

//включенные файлы

#include 912b32.h //B32 EVB header file

#include "func_def.h" //функции-прототипы, глобальные переменные


//main program*******************************************************

// глобальные переменные

int which_input; //вход усилителя

int keep_going; //ввод переменных

int mute; //флаг управления выключением звука

unsigned char old_PORTB = 0xff; //текущие значения PORTB

unsigned char old_PORTA = 0x00; //текущие значения PORTA

unsigned char new_PORTB, new_PORTA; //новые значения PORTA, PORTB


void main(void) {

 asm(" .area vectors(abs)\n"

  " .org 0xFFF8\n" //инициализация вектора сброса для 68HC12 B32

  " .word 0x8000, 0x8000, 0x8000, 0x8000\n"

  " .text");

 initialize_task;

 //главный цикл

 while(1) { //ожидается сигнал на включение питания

  if ((PORTB==0xFE)||(PORTA==0X01))

  //PORTB переключается в низкое, PORTA - в

  // высокое состояние

  { //вы забыли включить питание! Запрос на операцию включения

   keep_going = 1; //цикл считывания переменных

   PORTP=0x7E; //включение LED-MUTE-RELAY PP7(0)

               //LED-PWR-RELAY PP0(0) (0111_1110)

   which_input_task;

   activate_power_relay_task;

   delay_3s; //задержка 3 с.

   PORTP = 0x80; // DE-переключение PD7(1) - включение звука

   while(keep_going) //прохождение меню - главный цикл опроса

   {

    process_PORTB_input_task;

    process_PORTA_input_task;

   }

  }//end if - ожидание включения питания - питание не подано!

 }//end while(1)

}//конец главного цикла


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

// определение функций

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


initialize_task: начальные установки усилителя

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже