Velocidad de lectura de una variable

No he sabido poner un título mejor que explique mi problema.

Para mi proyecto de cuadricóptero, que sigue lento pero seguro :), estoy haciendo una rutina para el control de los ESC. Por diversas causas prefiero no usar la librería servo. La cuestión es que la velocidad de las instrucciones para garantizar el tiempo HIGH lo más exacto en la señal a los ESC estoy comprobando que es muy crítico. Tanto que un primer paso ha sido apartar las instrucciones

digitalWrite(PinMotorDelante, HIGH);

y utilizar

bitWrite(PORTD, PinMotorDelante, 1);

Si PinMotorDelante está definido como una constante,

const int PinMotorDelante = 2;

la instrucción bitWrite funciona muy rápida. Pero si en su lugar pongo una variable de un array

bitWrite(PORTD, OrdenPinMotor [0], 1);

la instrucción se vuelve lenta por el tiempo que tarda en leer el valor del array. ¿Alguien sabe de alguna forma para solucionar esto, que bitWrite pueda leer una variable rápidamente?

Hola,
se me ocurrió probar definiendo las variables al revés,

int PinMotorDelante ;
const int OrdenPinMotor [] = {2, 1};

void setup()
{
   Serial.begin(9600); 
   PinMotorDelante = 2;
}

Se invierten las velocidades, ahora con el array OrdenPinMotor va más rápido, al estar definido como constante. Yo tampoco conozco la razón: ¿podría ser porque la constante se almacena en la memoria Flash y la variable en la memoria SRAM? Seguro que alguien sabe más de memorias.

@curro92 eso es, no es por el hecho de ser un array si no por estar definido como una variable en lugar de una constante. Pero para mi código necesito que sea una variable :frowning: