Чтение онлайн

ЖАНРЫ

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

Пак Дэниэл Дж.

Шрифт:

//tuner_task: конфигурируется вход от тюнера

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

void tuner_task(void) {

 //TUNER PORTT |= 0x08; // устанавливается PT3(1) (0000_1000)

 delay_5ms;

 PORTT & = 0x08; // выключается PT3(0

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

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

}

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

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

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

void tape1_task(void) {

 //TAPE#1

 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)) {

which_input = 5;

change_input;

}

}

break;

case 0xBF: //PB6 "S-AUX" (1011_1111)

if (which_input != 6) {

if (process_valid_input_PORTB(new_PORTB)) {

which_input = 6;

change_input;

}

Поделиться с друзьями: