XIAO nRF52840 fast digitalRead?

Hi !

I need this to work with an optical incremental encoder (3600 pulses per revolution) . When digitalRead is slow, skips occur when the encoder rotates rapidly. And I need to solve this problem

I do it through an interruption ( attachInterrupt)

void encIsr()  

{


  curState = digitalRead(ENC_A) | digitalRead(ENC_B) << 1;  // digitalRead 

  if (resetFlag && curState == 0b11) {

    if (prevState == 0b10) {

      encCounter++;

      if (encCounter >= 250) {

        encCounter = 0;

        FullCounter++;

      }

    }

    if (prevState == 0b01) {

      encCounter--;

      if (encCounter <= -250) {

        encCounter = 0;

        FullCounter--;

      }

    }

    resetFlag = 0;

    flag = true;

  }

  if (curState == 0b00) resetFlag = 1;

  prevState = curState;

}