发布网友 发布时间: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不能用延迟,否则引起中断定时不准希望能帮到你。