下面是一段PIT中为了避免产生假中断给出的解决方案,里面用到了CCR寄存器,想请教一下CCR寄存器所在的模块和它的作用??????
PITCFLMT寄存器中的PITE位置1之前,需要先设置配置寄存器,即需要在PITE位置1之前,写操作配置寄存器。
当PITCE寄存器中、PITINTE寄存器中和PITCFLMT寄存器中的位或PITE位任意一位清零时,相应的PIT中断标志位清零。如果PIT中断请求被挂起,那么可能会产生伪中断。下面推荐两种方法避免伪中断发生:
① 只在中断服务子程序(ISR)中清除PIT中断标志位。当进入中断服务子程序时,CCR寄存器中的I可屏蔽位自动置1。PIT位清零之前,I可屏蔽位不能被清零。
② 使用SEI指令置位I可屏蔽位之后,PIT中断标志位才可清零,然后使用CLI指令清零I可屏蔽位重新使能中断。