typedef enum{
STATE_OFF,
STATE_ON,
STATE_STOP
}ENUM_STATE; //定義ENUM_STATE枚舉類型
ENUM_STATE system_state = STATE_OFF; //定義枚舉變量system_state, 初始化為STATE_OFF
bit key_on_flag, key_off_flag, work_too_long_flag; //定義3個觸發(fā)條件的bit變量(其實用2個就行)
void systemStateCtrl(){
if(key_on_flag){
if(system_state==STATE_ON || system_state==STATE_STOP)
system_state = STATE_OFF;
}
else if(key_off_flag){
if(system_state==STATE_OFF)
system_state = STATE_ON;
}
else if(work_too_long_flag){
if(system_state==STATE_ON)
system_state = STATE_STOP;
}
else{
;
}
systemStateWork();//把狀態(tài)工作程序放這里
}
void systemStateWork(){ //設(shè)計你各個狀態(tài)下的工作
switch( system_state ){
case STATE_OFF:
do_sth1(); //關(guān)機時的工作
break;
case STATE_ON:
do_sth2(); //開機時的工作
break;
case STATE_STOP:
do_sth3(); //超時停機時的工作
break;
default:
break;
}
}
nsush 發(fā)表于 2019-6-7 00:36
我對delay1s(); delay500ms()這樣的延時函數(shù)就很不爽,當(dāng)然程序流程很簡單的,用用也沒什么,如果是一個還 ...
kissme 發(fā)表于 2019-6-16 11:24
新手完全不曉得你說的啥玩意
tesrsm 發(fā)表于 2019-6-20 12:01
去除按鍵的抖動 不用延時函數(shù)的話,怎么處理
lianzai 發(fā)表于 2019-6-20 13:46
好文章,不知樓主能否弄成pdf格式上傳呢,想保存起來
2448289424 發(fā)表于 2019-7-8 01:36
樓主是出來工作了還是還在讀書自學(xué)單片機,看了你發(fā)了這篇寫得挺好的,之前讀書那會對時鐘這東西根本就沒概 ...
m182892 發(fā)表于 2019-7-8 08:21
我覺得這個帖子可以繼續(xù)加深,例程要多,到一定的程度可以出版書籍。
ccdmcu 發(fā)表于 2019-8-2 16:22
按鍵的松手檢測呢?怎么用定時器寫?
歡迎光臨 (http://www.torrancerestoration.com/bbs/) | Powered by Discuz! X3.1 |