Problema utilizando interrupciones Arduino Mega

Buenas. Llevo un par de días intentando utilizar interrupciones con Arduino Mega. El problema viene al intentar utilizar los pines 2 y 3 (interrupciones 0 y 1) para las interrupciones: el programa nunca detecta una interrupción. Si, por el contrario, utilizo los pines 20 y 21 (interrupciones 2 y 3), el programa detecta las interrupciones. El caso es que por cuestiones de diseño necesito utilizar los pines 2 y 3, y no sé que puede estar pasando. ¿Hay alguna forma de comprobar si esos pines funcionan?
En mi caso para las interrupciones utilizo unos encoders incrementales con una rueda. Al girar la rueda, debería saltar la interrupción, pero como ya digo con los pines 2 y 3 no salta. El código que estoy utilizando es el siguiente:

//Librerias
#include <TimerOne.h>
#include<avr/interrupt.h>
#include<avr/io.h>

//Definicion de los pines del encoder
#define encoder1PinA  2
#define encoder1PinB  3

long int pulsos1;

void setup()
{
  //Configuracion como pines de entrada los pines donde estan los canales A y B del encoder 1.
  pinMode(encoder1PinA, INPUT);
  pinMode(encoder1PinB, INPUT);


  //Configuracion de las interrupciones del encoder 1, las cuales se han configurado para que salte en disparo de subida y bajada.
  attachInterrupt(0, doEncoder1A, CHANGE);
  attachInterrupt(1, doEncoder1B, CHANGE);

  sei();
  interrupts();

  Serial.begin(9600);
  while (!Serial) {
    ; // Espera hasta que se conecte el puerto serie.
  }

}

void loop()
{
    Serial.print("Pulsos1:");
    Serial.println(pulsos1);
    delay(5);
}



//Interrupciones encoder 1
//Canal A
void doEncoder1A()
{
  sei();
  interrupts();
 pulsos1=pulsos1+1;
}
void doEncoder1B()
{
  sei();
  interrupts();
 pulsos1=pulsos1+1;
}

trata de seguir las indicaciones de la pagina de referencia :

-define la variable como volatile
-no declarares los pines como input ,ya lo hace attachinterrupt y se supone que usas resistencia pulldown en la entrada.
-interrupts() y sei() son lo mismo ,no hace falta activar las interrupciones si no se han desactivado con noInterrupts() o cli()