在 AVR 微控制器中,ISR 宏定义通常定义在相应的头文件中。例如,若要定义外部中断 0 的 ISR,可以使用以下代码:
#include
#include
ISR(INT0_vect) {
// 在此处编写 ISR 代码
}
int main(void) {
// 初始化代码和其他代码
...
// 使能外部中断 0
EIMSK |= (1 << INT0);
// 设置外部中断 0 触发条件为上升沿
EICRA |= (1 << ISC00) | (1 << ISC01);
// 无限循环
while (1) {
// 在此处编写主循环代码
...
}
// 不需要显式返回
}
在上述代码中,ISR 宏定义 INT0_vect
定义在 avr/interrupt.h
文件中,同时需要在 main()
函数中使能和配置外部中断 0,让其能够触发 ISR。