# AVR: Interrupt build error

I am trying to learn how to use interrupts for a project using an Attiny85. I have written a simple program from what I have learned from tutorials. However when I try to build the program in Atmel Studio, I get this error message:

"Error 2 static declaration of '__vector_1' follows non-static declaration"

I do not understand what this means or where my mistake located. I've searched all around for answers but I haven't found the reason for the error yet. Here is my code:

#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/sleep.h>

int main (void)
{

DDRB = 0b11111011; // set all pins to be output except PB2 to prevent false signals

GIMSK |= (1<<INT0); //set PB2 to interrupt
sei();

MCUCR |=(1<<ISC00);  //set to detect any change as interrupt
MCUCR &= ~(1<<ISC01);

ISR(INT0_vect)

{

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(200);

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(200);

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(600);

// dash
PORTB = 0b00001000;
_delay_ms(1000);
PORTB = 0b00000000;
_delay_ms(500);

// dash
PORTB = 0b00001000;
_delay_ms(1000);
PORTB = 0b00000000;
_delay_ms(500);

// dash
PORTB = 0b00001000;
_delay_ms(1000);
PORTB = 0b00000000;
_delay_ms(600);

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(200);

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(200);

// dot
PORTB = 0b00001000;
_delay_ms(500);
PORTB = 0b00000000;
_delay_ms(2000);

}

while (1) {

}

}


If anyone could provide assistance it would be much appreciated.

Thank you,

-David

You've written your ISR within main(). Don't do that; close the previous function first.
void main(void)