2019-07-20 20:44发布
dfbb123 发表于 2016-8-9 19:10 你觉得有必要?好吧那就贴下中断服务函数里的内容吧 void EXTI4_IRQHandler(void) {
dfbb123 发表于 2016-8-11 21:41 高手啊,如此写现象确实正常了,不过我又发现也可以不把翻转代码放到请标志之后,只要在清标志后面加代码 ...
特朗姆斯 发表于 2016-8-12 10:06 很敬佩你的钻研精神,但是你表达出来的意思有点难以理解 “加的代码可以是任意无用的”这句话是什么意 ...
最多设置5个标签!
我看了一下你是先翻转电平再清中断标志,那么进入两次中断也没有什么好奇怪的
你试一下进中断服务程序之后先清中断标志,再翻转电平看效果。
很敬佩你的钻研精神,但是你表达出来的意思有点难以理解
“加的代码可以是任意无用的”这句话是什么意思?后面一句“清标志后面要有代码”又是什么意思?
谢谢你的夸奖,原来这叫专研精神,我还以为是走火入魔呢
我贴个代码给我看吧,
void EXTI2_IRQHandler(void)
{
PCout(13)=!PCout(13);
num++;
EXTI-> PR=1<<2; // Çå3yLINE2éÏμÄÖD¶Ï±ê־λ
LED0=1;
}
看到那个LED0=1;了吗,这个就是任意无用的代码,你也可以写别的随便什么代码,关键是要放在清标志后面,有了这个代码程序就正常,拿掉就会进2次中断。
同理 EXTI->IMR&=~(1<<11); // 屏蔽line11上的中断
EXTI-> PR=1<<11; // 清除LINE11上的中断标志位
这样写也是会进2次中断才关闭中断的。要掉过来写的。
你讲的把翻转放到清标志后面就是起到标志后面有代码的作用,当然区别是这是有用的代码,所以当然也有效了。我观察到现象,也能排除现象,就是不懂为什么会这样?
一周热门 更多>