根據(jù)你的程序思路來看存在一個無法解決的問題,那就是在下面這段程序中
- while(!KEY)
- {
- key_press_num++;
- DelayMs(10); //10x200=2000ms=2s
- if(key_press_num==200) //大約2s
- {
- //如果達到長按鍵標(biāo)準(zhǔn)
- //則進入長按鍵動作
- //這里用于識別是否按
- //鍵還在按下,如果按
- //下執(zhí)行相關(guān)動作,否則退出
- while(!KEY)
- {
- LED2=!LED2;
- DelayMs(200);
-
- }
- }
- }
- LED1=!LED1;
復(fù)制代碼
本來你設(shè)置為當(dāng)按鍵沒有釋放時,就會進行計數(shù),而不會點亮LED1。
但是一旦計數(shù)值到達標(biāo)準(zhǔn),LED2就會被點亮,然后延時0.2s,結(jié)束當(dāng)前的while(!KEY)循環(huán),由于程序BUG
1.如果按鍵仍然不釋放LED2就會反復(fù)亮滅
2.或當(dāng)按鍵釋放while(!KEY)循環(huán)結(jié)束,程序循序執(zhí)行LED1=!LED1
所以你的設(shè)計思路有點小問題
|