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

 PORTT |= 0x10; //assert PT4(1) (0001_0000)

 delay_5ms;

 PORTT = ~0x10; // выключается PT4(0)

 PORTP |= 0x7E; //гасятся все светодиоды

 PORTP = ~0x10; // включается светодиод 4 (0)

}


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

//tape2_task: конфигурируется вход от магнитофона 2

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

void tape2_task(void) {

 //TAPE#2

 PORTT |= 0x20; // устанавливается PT5(1) (0010_0000)

 delay_5ms;

 PORTT = ~0x20; // выключается PT5(0)

 PORTP |= 0x7E; //гасятся все светодиоды

 PORTP = ~0x20; // включается светодиод 5 (0)

}


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

//aux_task: конфигурируется вход от дополнительного канала

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

void aux_task(void) {

 //ДК

 PORTT |= 0x40; // устанавливается PT6(1) (0100_0000)

 delay_5ms;

 PORTT = ~0x40; // выключается PT6(0)

 PORTP |= 0x7E; //гасятся все светодиоды

 PORTP = ~0x40; // включается светодиод 6(0)

}


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

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

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

void activate_power_relay_task(void) {

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

 delay_5ms;

 delay_5ms;

 PORTT = ~0x80; // выключается PT7

}


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

//process_PORTB_input_task: определяется выбранный вход от PORTB

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

void process_PORTB_input_task(void) {

 new_PORTB = PORTB; //read PORTB

 if (new_PORTB != old_PORTB) { //считывание состояния порта PORTB

  switch(new_PORTB) { //PORTB устанавливается на низкий уровень

  case 0xFE: //PB0 "S-PREAMP-PWR" (1111_1110)

   if (process_valid_input_PORTB(new_PORTB)) {

    preamp_off;

    keep_going=0;

   }

   break;

  case 0xFD: //PB1 "S-PHONO" (1111_1101)

   if (which_input !=1) {

    if (process_valid_input_PORTB(new_PORTB) {

     which_input = 1;

     change_input;

    }

   }

   break;

  case 0xFB: //PB2 "S-CD" (1111_1011)

   if (which_input!=2) {

    if (process_valid_input_PORTB(new_PORTB)) {

     which_input = 2;

     change_input;

    }

   }

   break;

  case 0xF7: //PB3 "S-TUNER" (1111_0111)

   if (which_input != 3) {

    if (process_valid_input_PORTB(new_PORTB)) {

     which_input = 3;

     change_input;

    }

   }

   break;

  case 0xEF: //PB4 "S-TAPE#1" (1110_1111)

   if (which_input != 4) {

    if (process_valid_input_PORTB(new_PORTB)) {

     which_input = 4;

     change_input;

    }

   }

   break;

  case 0xDF: //PB5 "S-TAPE#2" (1101_1111)

   if (which_input != 5) {

    if (process_valid_input_PORTB(new_PORTB)) {

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