Супер !!!

Всё заработало.Кнопки отзываются и очень быстро,только команды не совпадают с нажатием, как-то всё перепутано.Попробую разобраться с этим сам
Код
#int_timer0
void timer0_isr(void){
set_timer0(0); // TMR0IF=0;// Очистим флаг прерывания
//...... Этими кнопками изменяем показания SEC/DIV Канал А ....
if (input(OUT_A_UP)){
while(input(OUT_A_UP));div_A++;
}else if (input(OUT_A_DOWN)){
while(input(OUT_A_DOWN));div_A--;
}
if(div_A>8) div_A=1;
if(div_A<1) div_A=8;//ограничиваем div_A от 1 до 8
//-------Этими кнопками изменяем показания SEC/DIV Канал B ....-------
if (input(OUT_B_UP)){
while(input(OUT_B_UP));div_B++;
}else if (input(OUT_B_DOWN)){
while(input(OUT_B_DOWN));div_B--;
}
if(div_B>8) div_B=1;
if(div_B<1) div_B=8;//ограничиваем div_B от 1 до 8
//-------- Теперь ждем начала передачи и принимаем код клавиши------------
if(input(TASTE_EN)){
while(input(TASTE_EN));//если зашли уже в момент передачи кода кнопки то дождаться окончания передачи
}
while(!input(TASTE_EN));//Ждем начала передачи
bit_set(T2CON,T2ON); //Включим таймер
Key=0;//Занулим перед считыванием
for(i=0;i<16;i++){
while(!bit_test(PIR1,T2IF));//Ждем флага переполнения.
bit_clear(PIR1,T2IF);// Очистим флаг переполнения
if (input(Code_Out)) Key|=1; //Если клавиши нажата
Key<<=1;//Сдвигаем
}
bit_clear(T2CON,T2ON); //Отключим таймер
set_timer2(PR/2); //Установим начальное значение
bit_clear(PIR1,T2IF);// Очистим флаг переполнения
}//--------------------------OK
//##########################################
Порядок выполнения команд у меня должен быть такой
Код
//***************************************************************
//setup_timer_2(0, PR, 1);//Настроим таймер
T2CON=0x00;
PR2=PR;
bit_clear(T2CON,T2ON); //Отключим таймер
set_timer1(PR/2); //Установим начальное значение
//***************************************************************
timer0_isr();//вызываем прерывание на себя
//***************************************************************
for(ever){
if(Key&Key2) zeichen(SB,250,sync_volume_B--);//уровень синхронизации В
else if(Key&Key3) zeichen(SB,250,sync_volume_B++);//
else if(Key&Key4) syncB=1;//синхронизация по фронту B
else if(Key&Key5) syncB=0;//синхронизация по спаду B
else if(Key&Key6) zeichen(SA,2,sync_volume_A--);//уровень синхронизации А
else if(Key&Key7) zeichen(SA,2,sync_volume_A++);//
else if(Key&Key8) syncA=1;//синхронизация по фронту A
else if(Key&Key9) syncA=0;//синхронизация по спаду A
else if(Key&Key10) wahl=1;//один луч, канал B
else if(Key&Key11) {
wahl=2;rect(2, 230,253,237,1,0);
text57(33,230,V,1,1);
text57(151,230,freqA,1,1);//один луч, канал A
}
else if(Key&Key12) wahl=3;//два луча
else if(Key&Key13) wahl=4;//уходим в спектроанализатор
//else if(Key&Key14) free;
//else if(Key&Key15) free;
//else if(Key&Key16) free;
//Общий переключатель шкал и показаний
if(wahl==4) {
S_DIV_A(div_A,271,150);//Показания SEC/DIV Канал А
Spectr_DIV(div_A,2,230);//Шкала спектроанализатора Канал А
}
else {
S_DIV_B(div_B,271,90); //Показания SEC/DIV Канал B
S_DIV_A(div_A,271,150);//Показания SEC/DIV Канал А
}
switch(wahl){//Выбираем тип прибора - скоп или спектр
case 1: {scop_B(205);sbros();}break;// один луч, канал B
case 2: {res=1;scop_A(205);sbros();}break;// один луч, канал A
case 3: {//два луча одновременно
res=0;scop_B(140);// канал B
scop_A(235);// канал A
sbros();
} break;
case 4: spectrum_analizator(); break;//гиперпрыжок в спектроанализатор
}
}
}//--------------------------OK
//####################################################
Но такое впечатление, что он как-будто вывернут наизнанку
Ура !!! Всё встало на свои места, после того как переопределил кнопки
Код
//############## КОДИРОВКА КНОПОК #######
#define Key1 0b1000000000000000//
#define Key2 0b0100000000000000//
#define Key3 0b0010000000000000//
#define Key4 0b0001000000000000//
#define Key5 0b0000100000000000//
#define Key6 0b0000010000000000//
#define Key7 0b0000001000000000//
#define Key8 0b0000000100000000//
#define Key9 0b0000000010000000//
#define Key10 0b0000000001000000//
#define Key11 0b0000000000100000//
#define Key12 0b0000000000010000//
#define Key13 0b0000000000001000//
#define Key14 0b0000000000000100//
#define Key15 0b0000000000000010//
#define Key16 0b0000000000000001//
Илье очередной

и уважуха