AVR系列单片机的ISR宏定义位于哪个头文件中?
ISR 宏定义位置说明
- 你查找的文件范围不正确:
<avr/io.h>仅包含通用IO寄存器的宏定义,<avr/iom328p.h>是ATmega328P专属的寄存器映射头文件,芯片datasheet仅会说明硬件层面的中断向量表规则,不会涉及编译器工具链提供的软件宏实现。 - ISR宏是avr-libc为AVR架构提供的专属中断服务函数包装宏,定义在
avr/interrupt.h头文件中,你需要引入该头文件才能正常调用ISR宏,其完整定义也可以在这个头文件中找到。 - 该宏的核心作用是给函数添加编译器中断属性,自动生成中断上下文保存/恢复逻辑,以及中断返回专用的
reti指令,无需开发者手动处理底层汇编逻辑,标准用法如下:
ISR (/*<ISR-vector>*/) { /* ISR code here */ }
- 如果你本地找不到该头文件,可以检查你的avr-gcc工具链安装路径,通常该头文件存放在工具链的
avr/include/avr/目录下。
内容的提问来源于stack exchange,提问作者Kalcifer
相关产品推荐
相关产品推荐

