| 感谢各位大佬的分享,已经解决了。感谢大家。 |
cjm82 发表于 2019-9-2 23:13 兄弟,大哥谢谢,解决了 |
|
加个标志位,a>b同时标志位为零条件满足时c+1,标志位置位1; 当a<=b时,标志位清零 |
较简单的问题。楼上加flag的方法可行,如果不加标志,也可行。按楼主意思,发生a>b时,c加1,且只加一次,那就是C=1。c=0; //AD转换..... if(a>b) { c=1; LED2=!LED2; delayms(50); } else { c=0; } |
| 加个标志位,a>b同时标志位为零条件满足时c+1,标志位置位1; 当a<=b时,标志位清零 |
|
设置一个标志变量 例如 u8 flag = 0; //0表示如果下次检测到a>b则c++, 1表示上一次检测到a>b, if(a>b) { if(flag = 0) { c++; flag = 1; //c++后,将flag置1,用以防止下一次检测到a>b时 再次执行c++ } }else //如果a>b不成立,即a<=b { flag = 0; //将flag清0,以便下一次检测到a>b时执行c++ } |
| 加个标志变量就行了呀 |
|
bit flag=0; if((!flag)&&(a>b)) {c++; flag=1;} else flag=0; |