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

void initialize_ports(void) {

 DDRA=0x00; //конфигурация PORTA в качестве входного

 PORTA=0x00; //запрет на подключение подтягивающих резисторов в PORTA

 DDRB=0x00; //конфигурация PORTB в качестве входного

 PORTB=0xff; //разрешение подключения подтягивающих резисторов в PORTB

 DDRT=0xff; // конфигурация PORTT в качестве выходного

 PORTT=0x00; // установка на низкий уровень

 DDRP=0xff; // конфигурация PORTD в качестве выходного

 PORTP=0xff // установка на высокий уровень

}

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


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

//initialize_pins: установка отдельных выводов

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

void initialize_pins(void) {

 PORTT=0x01; //сброс реле PT0(1) 5 мс импульс с

 // активным уровнем (0000_0001)

 //delay_5ms:

 PORTT=0x00;

}


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

//delay_5ms: Задержка на 5 мс сформированная из базе частоты таймера

//в 250 кГц

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

void delay_5ms(void) {

 int i;

 for(i=0; i1250; i++)

  asm("nop"); //требуется только один импульс таймера

}


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

//delay_3s: Задержка на 3 с

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

void delay_3s(void) {

 int i;

 for(i=0;i600;i++) delay_5ms;

}


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

//change_input: изменение активного входа

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

void change_input(void) {

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

 PORTT |= 0x01; //установка сброса реле PT0(l) 5 мс

 delay_5ms;

 PORTT = ~0x01; //turn off PT0

 switch(which_input) {

 case 1: //PHONO

  phono_task;

  break;

 case 2: //CD

  CD_task;

  break;

 case 3: //TUNER

  tuner_task;

  break;

 case 4: //TAPE#1

  tape1_task;

  break;

 case 5: //TAPE#2

  tape2_task;

  break;

 case 6: //AUX

  aux_task;

  break;

  default:;//все другие входы

 }//конец switch

 delay _3s;

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

}


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

//mute_toggle: включение и выключение звука

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

void mute_toggle(void) {

 if (mute == off) {

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

  mute = on;

 } else {

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

  mute = off;

 }

}//end mute_toggle


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

//preamp_off: turn amplifier off

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