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;
}
}
break;
case 0x7F: //PB7 "S-MUTE" (0111_1111)
if (process_valid_input_PORTB(new_PORTB)) {
mute_toggle;
}
break;
default:; //all other cases
} //конец switch(new_PORTB)
} //конец if new_PORTB
old_PORTB=new_PORTB; //update PORTB
}
//******************************************************************
//process_PORTA_input_task:определяется выбранный вход от PORTA
//******************************************************************
void process_PORTA_input_task(void) {
new_PORTA = PORTA; //Читать PORTA
if (new_PORTA != old_PORTA) { //выбор входа по состоянию порта PORTA
switch (new_PORTA) { //PORTA переводится в высокое состояние
case 0x01: //РАО "R-PREAMP-PWR" (0000_0001)
if (process_valid_input_PORTA(new_PORTA)) {
preamp_off;
keep_going=0;
}
break;
case 0x02: //PA1 R-PHONO" (0000_0010)
if (which_input != 1) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 1;
change_input;
}
}
break;
case 0x04: //PA2 "R-CD" (0000_0100)
if (which_input != 2) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 2;
change_input;
}
}
break;
case 0x08: //РАЗ "R-TUNER" (0000_1000)
if (which_input != 3) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 3;
change_input;
}
}
break;
case 0x10: //PA4 "R-TAPE#1" (0001_0000)
if (which_input != 4) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 4;
change_input;
}
}
break;
case 0x20: //PA5 "R-TAPE#2M (0010_0000)
if (which_input != 5) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 5;
change_input;
}
}
break;
case 0x40: //PA6 "R-ДОПОЛНИТЕЛЬНЫЙ КАНАЛ" (0100_0000)
if (which_input != 6) {
if (process_valid_input_PORTA(new_PORTA)) {
which_input = 6;
change_input;
}
}
break;
case 0x80: //PA7 "R-MUTE" (1000_0000)
if (process_valid_input_PORTA(new_PORTA)) {
mute_toggle;
}
break;
default:; //all other cases
} //конец switch(new_PORTA)
}//конец if new_PORTA
old_PORTA = new_PORTA; //изменяется состояние PORTA
}
//******************************************************************
//initialize_timer:установка частоты таймера обслуживающего счетчик
//******************************************************************
void initialize_timer(void) {
TMSK2 = 0x05; //установка на 250 КГц
TSCR = 0x80; //разрешение работы таймера
}
//******************************************************************
//initialize_ports: начальная конфигурация портов
//******************************************************************