|
case RC5mut: if (bit_is_set(PIND,MOUT)) \
{PORTD &= ~(_BV(MOUT));rotate(0);// сбрасывает MUTE если установлено
}
else {PORTD |= _BV(MOUT); rotate(0);// устанавливает MUTE если сброшено
} break;
case RC5inB: PORTD |= _BV(SEL0); PORTD &= ~(_BV(SEL1));lcd_com(0x8D); lcd_dat(0x02); break;
case RC5inC: PORTD |= _BV(SEL1); PORTD &= ~(_BV(SEL0));lcd_com(0x8D); lcd_dat(0x03); break;
case RC5inD: PORTD |= _BV(SEL0); PORTD |= _BV(SEL1);lcd_com(0x8D); lcd_dat(0x04);break;
******************case RC5in1: PORTD &= ~(_BV(SEL0)); lcd_com(0x8D);PORTD &= ~(_BV(SEL1)); lcd_dat(0x01);break;
} //Окончание фунции "switch" =14
GICR |= _BV(INT0);
Когда последнюю строчку вставляю (которую пометил звездочками) работать перестают все RC5in*, а когда ее убираю - все работает нормально (естественно без RC5inA)
Менял названия, место в switch ставил паузы - все переключается в исходное состояние после команды GICR |= _BV(INT0);
Менял код команды (RC5inA=0x01....)
пробовал отключать три других case - все нормально, а вот с case RC5inA нивкакую .
Вот и весь вопрос. В железе не пробовал.