|
發布時間: 2021-10-29 09:51
正文摘要:單片機源程序如下: if里面,為啥要這樣寫就可以檢測sw是否按下呢,不理解呢。應該怎么理解好,還有好幾個if,不知道怎么理解。求指點,感謝!~ |
| 多層if嵌套是為了消除按鍵按下時產生的抖動,建議去看一下有關鍵盤章節的學習視頻 |
| 都是判斷當前按鍵狀態,按下前是1.那么按下后就是0,程序就運行到了按鍵按下的那里,再次檢測就是消抖,程序最后再檢測就可以判斷按鍵是否松開。 |
| 你要自己思考,改動這個程序,看看自己改動與原程序的區別,這樣就容易摸清楚了 |
nbhmwj 發表于 2021-11-1 11:10 謝謝答主!感謝╰(*︶`*)╯ |
首先,要清楚開關按下和松開過程中的電信號變化情況,一般會有十幾ms的抖動時間,如下圖
其次,程序指令一般都很快,微秒級的,故循環查詢時不延時處理會多次得到結果或高或低電平,會檢測不到你想要的情況。 其它,如上面所說,不講程序了 |
| 都是判斷真假,if(!SW) SW=0為真,while(!SW)SW=1為假。 |
| 你覺得應該怎么寫,跟他的區別在哪兒 |