×
单片机 > 单片机程序设计 > 详情

s3c2440 中断挂起寄存器INTPND

发布时间:2020-05-16 发布时间:
|

中断挂起寄存器INTOND包括32个比特位,其中每一个比特位均表示相应中断请求是否拥有最高优先级,它们处于等待中断服务状态并且没有被屏蔽。INTPNd寄存器在优先级仲裁结束之后,仅有一个比特位被置1,并且被置1的中断请求向CPU产生IRQ,在执行IRQ中断服务时,可以读取寄存器来确定32个中断源中哪个中断源被执行。

同SRCPND一样,INTPND也需要在中断服务程序中加入清0操作,位于SRCPND寄存器清0操作之后。可以通过向INTPND寄存器写入一个数据对相应位清0.仅将需要位清除,其余保持原值不变。

清除INTPND寄存器时应该注意:INTPND寄存器通过写1清0。如果INTPND寄存器设置为1的比特位通过写0清0,那么INTPND寄存器和INTOFFSET寄存器可能在某种情况下获得不可预知的值。所以,不要对INTPND寄存器值为1的比特位写0。正确清除INTPND寄存器比特位的方法是向寄存器写INTPND寄存器写INTPND寄存器值。

另外:INTMOD中断模式寄存器中只能有一位设为1,即FIQ只能分配一个。

对于一般中断IRQ,可能同时有几个中断被触发,未被INTMSK寄存器屏蔽的中断经过比较后,选出优先级最高的中断,此中断在INTPND寄存器中的相应位被置1。然后CPU进入中断模式进行处理。中断服务程序可以通过读取INTPND寄存器或者INTOFFSET寄存器来确定中断源。




『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
51单片机CO2检测显示程序解析