Код: Выделить всё
if(flag_TIMER1 == ON)
{
flag_TIMER1 = OFF;
TCCR1B &= ~((1<<CS10)|(1<<CS12)); // anti-bounce timer stop
uint8_t buttonState = 0; // буфер для текущего состояния кнопок
buttonState = PINB ^ 0x07; // проверяем какая кнопка нажата
switch(buttonState)
{
case BACK: {direct = DIR_BACK; step = 0xFFFF; flag_ROLLBACK = OFF; TCCR0B |= (1<<CS00)|(1<<CS02);} break; // back
case FORWARD: {direct = DIR_FORWARD; step = 0xFFFF; flag_ROLLBACK = OFF; TCCR0B |= (1<<CS00)|(1<<CS02);} break; // forward
case STEP_FWRD: {direct = DIR_FORWARD; step = val_step_fwrd; flag_ROLLBACK = ON; TCCR0B |= (1<<CS00)|(1<<CS02);} break; // step forward
case 0: step = 0; break;
}
GIFR |= (1<<PCIF1); // Flag External Interrupt clear
GIMSK |= (1<<PCIE1); // External Interrupt Pin Change Interrupt Enable 1
stepper_motor();
}


