|
發布時間: 2019-9-2 21:20
正文摘要:本人利用ad轉換出兩個不同電壓,a電壓和b電壓。a是始終比b小的,現在我想,當a>b時,c加1,如果a一直大于b,c就會一直加,但是我不需要它一直加,只加了一開始a>b的一次。我現在代碼是這樣的。如果a>b是一瞬間 ... |
| 感謝各位大佬的分享,已經解決了。感謝大家。 |
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; |