'__vector_1' 的静态声明遵循非静态声明

Static declaration of '__vector_1' follows non-static declaration

我正在尝试创建一个在我按下按钮时会中断的程序。我有 Atmega8,我使用 Microchip studio 进行编码。 我在 atmega 的网站上查看了有关中断的文档,但我不能说我完全明白了。
这是我的代码:

#define F_CPU 1000000UL
#define IRQ1 INT0_vect 
#define IRQ2 INT1_vect 

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

void init()
{
    DDRB=0b11111111;    
    PORTB=255;
    _delay_ms(2000);
    PORTB=0;
    DDRD = 0b00000000;
    GICR=0xc0;   
    MCUCR=0x08;
}

int main(void){
    
    init();
    volatile int mode = 0;
        
            ISR(IRQ1){
                _delay_ms(500);
                if (mode<3)mode++; else mode = 0;       
            }

            ISR(IRQ2){
                _delay_ms(150);
            }
}

我得到的错误: Imgur

如果有任何管理员编辑我的问题并在此处添加图片,我会很高兴,网站不允许我添加照片,因为我需要至少 10 个声誉才能 post 图片

除非您真的知道自己在做什么,否则不要尝试在其他函数内部定义函数。您应该将 ISR 定义移动到文件的顶层,将它们放在 main.

之外