Velocizzare l'IO delle porte digitali

Ragazzi mi inserisco anche io nella discussione perché ho un problema con gli input utilizzando "true C". Non so se devo aprire un'altra discussione, nel dubbio posto la domanda...

In pratica devo sostituire il classico DigitalRead(pin) con PINx.
Il codice di test é questo:

int encoder0PinALast=LOW;
int countPulses=0;
int n=LOW;

void setup()
{
  Serial.begin(115200);
  
  pinMode(2,INPUT);
  pinMode(3,INPUT);
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
}

void loop()
{
  
  encoderMotor();
 }

void encoderMotor(){
 // n = digitalRead(2);
 n=PIND & _BV(PCINT2);//<== il mio dubbio é qui. n varrá di volta in volta 1 o 0 ??

   if ((encoder0PinALast == LOW) && (n == HIGH ) ) { 
      if (PIND & _BV(PCINT19) == LOW) {
       countPulses++;
     } else {
       countPulses--;
     }
   } 
   encoder0PinALast = n;
}

Il fatto é che l' if non procede nel modo corretto e non ottengo ne l'incremento ne il decremento della variabile. Potreste chiarirmi il concetto su PINx ? Grazie.