interrupt problrm

I just paste the code below to test interrupt
#include <avr/interrupt.h>
//
void setup(void)
{
pinMode(2, INPUT);
pinMode(13, OUTPUT);
digitalWrite(2, HIGH); // Enable pullup resistor
sei(); // Enable global interrupts
EIMSK |= (1 << INT0); // Enable external interrupt INT0
EICRA |= (1 << ISC01); // Trigger INT0 on falling edge
}
//
void loop(void)
{
//
}
//
// Interrupt Service Routine attached to INT0 vector
ISR(EXT_INT0_vect)
{
digitalWrite(13, !digitalRead(13)); // Toggle LED on pin 13
}

but it does not work,then I change the line
ISR(EXT_INT0_vect)
to
ISR(INT0_vect)
the interrupt works fine.

what’s the difference with these two lines?
and I didn’t find the vector name in atmel 328P datasheet. I just found the name EXT_INT0 in datasheet.
Thanks in advance

I think (if you look at this link) that you are just trying the wrong name for the interrupt.

...R

INT0_vect Is predefined for interrupt 0 (D2)

See Nicks talk on interrupts: http://www.gammon.com.au/interrupts

The ISR (INT0_vect) function is called on an interrupt with D2 The ISR (INT1_vect) function is called on an interrupt with D3

Robin2 got there first