#define SEI() asm("sei")的含义?

来源:百度知道 编辑:UC知道 时间:2024/05/26 11:46:02
在ICCAVR中对avr单片机的头文件定义中有这样几句:
#define WDR() asm("wdr")
#define SEI() asm("sei")
#define CLI() asm("cli")
请问这是什么意思啊?

我对单片机什么的不太了解,不过看样子,
wdr, sei, cli 应该是你的单片机的指令(汇编).
asm(XXX) 应该是你所使用的C编译器的对内嵌汇编代码的扩展关键字.
总地来说,定义这几个宏目的应该是在C代码中可以像下面这样
来执行对应的CPU指令:
WDR();
SEI();
CLI();

呵呵,猜的!

#define WDR() asm("wdr") // 喂狗,去除此句将导致MCU复位
#define SEI() asm("sei")//开全局中断
#define CLI() asm("cli")//关全局中断

以上语句将汇编语句分别用WDR() SEI() CLI()代替

就是方便你嵌入汇编啦,第一个不清楚,看门狗?我不用ICC的,我用GCC,不过这问题不大。第二第三个是总中断允许位置位/清除。用宏就是免得让你嵌入汇编时出错,而且更方便而已