Problema con configuración de registros de interrupción externa

Buen día.
He querido configurar mi Arduino Nano para que se genere una interrupción por flanco de bajada por medio del pin del INT0.

Según he buscado en el datasheet, hay que editar el registro EICRA y el registro EIMSK. Mi programa consiste en que cada vez que ocurra un flanco de bajada en el pin INT0 (pin PB0 del controlador y pin D8 del Arduino Nano) se alterne el estado lógico de un led que tengo conectado al pin D7 del Arduino. Mi código es el siguiente:

int main (void)
{
  cli();
  SREG  = B10000000; //Habilitación global de interrupciones. 
  EICRA = B00000010; //Configuracion por flanco de bajada. 
  EIMSK = B00000001; //Habilita la interrupción por INT0. 

  DDRD  = B10000000; //PD7 como salida al led. 
  sei();
  for(;;)
  {
    
  }
}

ISR(INT0_vect)
{
  PORTD ^= B10000000;  //Alterna el estado del led. 
}

Ya he buscado bastante por la red y veo que son las mismas configuraciones. Ya probé con otro Arduino y no funciona, lo único que hace es permanecer apagado y esporádicamente, casi por azar, el led prende pero ya no se apaga.

Si alguien sería tan amable de revisar mi código y comentarme el detalle que se me está pasando.

Saludos y gracias.

Eso no es código arduino, es código AVR.

En esta pagina Arduino-Interrupts tienes como hacerlo por flanco RISING (subida), FALLING (Bajada), CHANGE (cambio), HIGH o LOW.

Acá un código similar

const byte ledPin = 13;
const byte interruptPin = 2;
volatile byte state = LOW;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(interruptPin, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(interruptPin), blink, FALLING );
}

void loop() {
  digitalWrite(ledPin, state);
}

void blink() {
  state = !state;
}

exactamente hace lo que quieres a la manera Arduino