导航

INTPND = INTPND

Posted on 2011-12-06 18:22  nagisa  阅读(446)  评论(0)    收藏  举报

中断处理完成后需要清除中断源,看到这么一句代码:

INTPND = INTPND;                        // 清除中断结果

重新用原值赋值,什么意思?

INTPND定义如下:

#define INTPND         (*(volatile unsigned long *)0x4A000010)

INTPND是最高优先级中断暂存寄存器,保存了经过优先级仲裁出的中断信号位,被置1的位表示仲裁出来优先级最高的中断号。中断处理完成后,通过向该位写入1来清除中断。所以重新用原值赋值一遍即可达到目的。