K1按下,執行程式1,再按一次,終止程式1
K2按下,執行程式2,再按一次,終止程式2
其中程式1程式2為模塊化自定義的函式,被主函式呼叫。
求高手指點。
uj5u.com熱心網友回復:
最簡單的是設定一個狀態,判斷狀態啟停。uj5u.com熱心網友回復:
如1樓所言,定義一個bool變數允許/禁止子程式運行,bool變數值根據按鍵改變。uj5u.com熱心網友回復:
//===========================================================
//以下只是理論部分,具體問題具體分析
//如果模塊為死回圈執行需要用到定時器
//如有疑問歡迎交流:395233700
//2019年4月18日14:17:09
//===========================================================
void openmodule_1(); //打開模塊1
void closemodule_1(); //關閉模塊1
void openmodule_2(); //打開模塊2
void closemodule_2(); //關閉模塊2
char checkkey(); //檢測按鍵模塊
int main()
{
//區域表變數的定義
char keyvalue; //保存獲取到的按鍵資訊
bool key1state; //保存按鍵1的狀態
bool key2state; //保存按鍵2的狀態
//區域變數的初始化
key1state = 0;
key2state = 0;
keyvalue = checkkey(); //獲取按鍵資訊
if( keyvalue == key1 ) //判斷按鍵值
{
if( key1state == 0 )
{
openmodule_1(); //打開模塊
}
else
{
closemodule_1(); //關閉模塊
}
key1state = !key1state; //按鍵按下改變狀態
}
else if( keyvalue == key2 ) //判斷按鍵值
{
if( key1state == 0 )
{
openmodule_2(); //打開模塊
}
else
{
closemodule_2();//關閉模塊
}
key2state = !key2state; //按鍵按下改變狀態
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/134292.html
標籤:單片機/工控
下一篇:怎么寫TM32F0芯片的延時程式
