Шаговый двигатель не вращается при большом значении скорости

Код:

volatile boolean flag=0;

ISR(TIMER1_COMPA_vect){
    PINB&(1<<PB2)?PORTB&=~1<<PB2:PORTB|=1<<PB2;
    if(flag){
        OCR1A>50?OCR1A--:OCR1A=50;
        flag=0;
    }
}

void setup(){
    
    DDRB|=1<<PB2;//ногодрыг пином 10
    TCCR1A=0;
    TCCR1B=0;
    TIMSK1=0;
    TCCR1B|=1<<WGM12;
    TCCR1B|=1<<CS10;
    TIMSK1|=1<<OCIE1A;
    OCR1A=1000;
}

void loop(){
    static uint32_t ms=millis();
    if(millis()-ms>=5){
        ms=millis();
        flag=1; 
    }
}

Кино: жирное будет ссылка на Ютуб, чуть позже..