s3c2440 中断挂起寄存器INTPND -
[导读]中断挂起寄存器INTOND包括32个比特位,其中每一个比特位均表示相应中断请求是否拥有最高优先级,它们处于等待中断服务状态并且没有被屏蔽。INTPNd寄存器在优先级仲裁结束之后,仅有一个比特位被置1,并且被置1的中断
中断挂起寄存器INTOND包括32个比特位,其中每一个比特位均表示相应中断请求是否拥有最高优先级,它们处于等待中断服务状态并且没有被屏蔽。INTPNd寄存器在优先级仲裁结束之后,仅有一个比特位被置1,并且被置1的中断请求向CPU产生IRQ,在执行IRQ中断服务时,可以读取寄存器来确定32个中断源中哪个中断源被执行。
本文引用地址: http://www.21ic.com/app/mcu/201808/784818.htm
同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寄存器来确定中断源。
查看评论 回复
"s3c2440 中断挂起寄存器INTPND -"的相关文章
- 上一篇:小型直流电机控制例子 -
- 下一篇:AVR单片机汇编器伪指令 -