нащёт прерывани я загнул a вот так ? #define DownButton GIST,0,1
#define GISTER_BUTTONS (2)// Гистерезис изменения состояния кнопок
#define LONG_PRESSING (20)// Критерий продолжительного нажатия кнопки
// Счетчики времени удержания кнопок >0 - нажата, <0 - ненажата
static char ModeButton;
void ButFiltr(void)
{
//================================================================
//Фильтрация
//===============================================================
if(is_on(MODE_BUTTON))// Нажата
{
if( ModeButton < (GISTER_BUTTONS+1) )
{
if( ! ( ModeButton + 1 ) )
{
on(DownButton);
temp = GISTER_BUTTONS+1;
};
ModeButton = temp;
};
}
else// Не нажата
if( ModeButton >= -GISTER_BUTTONS )
{
if( ! ( ModeButton - 1 ) )
{
temp = -GISTER_BUTTONS-1;
};
ModeButton = temp;
};