为什么,打开中断后不能执行while中的if语句了呢?

发布网友 发布时间:2022-04-22 07:01

我来回答

1个回答

热心网友 时间:2022-06-17 03:35

当然不执行了,你把 if(aa==20) {      aa=0;      P0=m;      delay(100);      m=_crol_(m,1);      }  这一段放到while里后,while判断aa的值,假定上一次中断aa的值变为20,由于中断定时时间短,在还没有执行到 if 判断的时候,aa的值自加,此时已经不满足 aa==20 的条件了,所以执行不了xb一般的做法是在中断中这样:设置一个全局变量标志 flagif (aa==20){    flag = 1;   aa = 0;}在主循环 while 中,判断b妫欤幔纭”曛绯执行所需要完成的任务。while(1){    ……    if(flag)    {        P0=m;        delay(100);        m=_crol_(m,1);        flag = 0;   }    ……}在中断中的程序尽可能短9517不能用延迟,否则引起中断定时不准希望能帮到你。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com