我用到了外部中断(EXTI5),管脚PA5每10ms触发一次(每次都能触发),NVIC配置中优先级配置为0(最高)。
还有个TIM14,作为7us定时器使用,每7us产生一个溢出中断,优先级配置为1。
在7us中断中,一个volatile无符号全局变量timCount++;
在10ms中断中,将timCount存储到一个数组中(100个元素),然后复位timCount。
查看数组,发现大部分元素为1420多,但有少部分是2800多。证明有时候10ms中断复位timCount不成功。为什么?
对于这种慢中断中需要改变快中断中使用到的变量,有没有什么好的处理方法?请指点,谢谢!
我目前是在10ms中断中置位一个标记,在7us中断中判断这个标记是否置位,置位了则复位标记和复位timCount。 |