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