最近用到了蜂鸟mcu中的一些中断,但是在看书的时候,有些地方不是很理解:
1.请问pending到底表示什么意思,当pending位为1的时候是表示有中断正在执行还是正在等待中断的到来?(如下图,我感觉书上说的很模糊,当前有计时器中断正在等待是什么意思呢)
面这段话中说产生的中断会反映在GPIO_RISE_IP寄存器对应的位中,这个反映具体是怎么反映的呢,是对应的位会置1吗,如果是置1的话,那么为什么后面又说清除中断需要向该寄存器对应的比特位写1?这不是自相矛盾吗?
本人在网上搜了有关interrupt pending的相关资料,但是无果,希望有了解的可以分享一下,谢谢您的帮助。
我看了数据手册,只是说写1即可清0,那这个的意思就是不管以前是不是1,只要往里面写入1,都能起到“清0”的作用吗,您的回答对我非常有帮助,谢谢您。
是的,写1清零,跟之前的状态无关。 别客气,我也是刚接触不久,我感觉E203是一个相当好的知识宝库,大家共同学习,共同进步吧。
pend这个单词有悬而未决、待解决的意思。
pending表示当前有中断正在执行,所以新来的中断要等正在执行的中断结束后,再执行。
举个例子:比如MCU正在处理UART中断,这时SPI发出中断请求,MCU就会把SPI对应的pending位置1,等UART中断处理完了,MCU发现有中断正在PENDING,是SPI,就处理SPI中断。
至于“清除中断需要向该寄存器对应的比特位写1”的问题,应该是这个寄存器是“写1清零”的类型,多读一下数据手册你就知道了。
我这也是在使用过程中自己总结的,有不对的地方,请指教。
我看了数据手册,只是说写1即可清0,那这个的意思就是不管以前是不是1,只要往里面写入1,都能起到“清0”的作用吗,您的回答对我非常有帮助,谢谢您。
pend这个单词有悬而未决、待解决的意思。
pending表示当前有中断正在执行,所以新来的中断要等正在执行的中断结束后,再执行。
举个例子:比如MCU正在处理UART中断,这时SPI发出中断请求,MCU就会把SPI对应的pending位置1,等UART中断处理完了,MCU发现有中断正在PENDING,是SPI,就处理SPI中断。
至于“清除中断需要向该寄存器对应的比特位写1”的问题,应该是这个寄存器是“写1清零”的类型,多读一下数据手册你就知道了。
我这也是在使用过程中自己总结的,有不对的地方,请指教。