1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4836|回復(fù): 24
收起左側(cè)

關(guān)于一個if的程序執(zhí)行問題

  [復(fù)制鏈接]
ID:362355 發(fā)表于 2018-7-7 15:15 來自觸屏版 | 顯示全部樓層 |閱讀模式
我是用if判斷按鍵來實現(xiàn)電機的轉(zhuǎn)動,但是有一個按鍵呢功能是要電機轉(zhuǎn)幾秒停幾秒的反復(fù)的,如果我把這個按鍵按下了,它就會執(zhí)行這段程序,即使有其他按鍵按下了還是會執(zhí)行這段程序,怎么改呢??
回復(fù)

使用道具 舉報

ID:366893 發(fā)表于 2018-7-7 16:31 | 顯示全部樓層
表述不明,沒看懂你要表達什么,可以說清楚點嗎
回復(fù)

使用道具 舉報

ID:164602 發(fā)表于 2018-7-7 16:53 | 顯示全部樓層
在電機轉(zhuǎn)動程序中,加一個判斷,只要有按鍵發(fā)生,就跳出這段程序,即要加一個按鍵的判斷。
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-7 17:29 來自觸屏版 | 顯示全部樓層
hayden 發(fā)表于 2018-7-7 16:31
表述不明,沒看懂你要表達什么,可以說清楚點嗎

就是按鍵K4按下了,如果其他按鍵按下,不能直接切換過去了,怎么改??(m是電機的占空比)
1530955584432-1800147721.jpg
15309556234851880717620.jpg
回復(fù)

使用道具 舉報

ID:363376 發(fā)表于 2018-7-7 17:33 | 顯示全部樓層
加一判斷的條件,只要轉(zhuǎn)幾秒停幾秒轉(zhuǎn)的按鍵生效了其他按鍵就失效,執(zhí)行完了幾秒停幾秒轉(zhuǎn)再使其他鍵生效
回復(fù)

使用道具 舉報

ID:366691 發(fā)表于 2018-7-7 18:41 | 顯示全部樓層
你是用if(按鍵1)來判斷的吧?然后進入if之后就再也出不來了?給IF加停止條件啊!不然會永遠死循環(huán)的。
回復(fù)

使用道具 舉報

ID:308437 發(fā)表于 2018-7-7 19:30 | 顯示全部樓層
同上:
表述不明,沒看懂你要表達什么,可以說清楚點嗎
回復(fù)

使用道具 舉報

ID:342822 發(fā)表于 2018-7-7 20:15 | 顯示全部樓層
圖片看不清~~~~~~~~~~~~~~
回復(fù)

使用道具 舉報

ID:342822 發(fā)表于 2018-7-7 20:22 | 顯示全部樓層
轉(zhuǎn)幾秒停幾秒!
用循環(huán)語句來實現(xiàn),在循環(huán)中加條件判斷如果某鍵按下隨時退出。
回復(fù)

使用道具 舉報

ID:148256 發(fā)表于 2018-7-7 21:10 | 顯示全部樓層
可以定義一個狀態(tài)吧,表示按鍵是否已按下,在中斷中寫入狀態(tài),每次在大循環(huán)中檢測該狀態(tài),按下就執(zhí)行代碼,釋放就不執(zhí)行
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-7 21:52 | 顯示全部樓層
本帖最后由 我是貔貅 于 2018-7-8 09:27 編輯
yousunny 發(fā)表于 2018-7-7 19:30
同上:
表述不明,沒看懂你要表達什么,可以說


      

復(fù)制代碼
回復(fù)

使用道具 舉報

ID:191417 發(fā)表于 2018-7-8 00:21 | 顯示全部樓層
if (z=1)
回復(fù)

使用道具 舉報

ID:191417 發(fā)表于 2018-7-8 00:23 | 顯示全部樓層
if (zhuan=1)
{
zhuan=0;
}
else
{
zhuan=1;
}
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 09:30 | 顯示全部樓層
  1. /*------------自然風(fēng)模式----------------*/
  2. void naturemode()
  3. {         
  4.          m=100;
  5.          delay(1000);
  6.          m=0;
  7.          delay(3000);
  8.          m=100;
  9.          delay(1000);
  10.          m=0;
  11.          delay(3000); //前8秒
  12.          m=100;
  13.          delay(2000);
  14.          m=0;
  15.          delay(2000);
  16.          m=100;
  17.          delay(2000);
  18.          m=0;
  19.          delay(2000);        //又8秒
  20.          m=100;
  21.          delay(3000);
  22.          m=0;
  23.          delay(1000);
  24.          m=100;
  25.          delay(3000);  
  26.          m=0;
  27.          delay(1000);   //又8秒
  28.          m=100;
  29.          delay(8000);
  30.        
  31.          
  32. }

  33. ......

  34. /*----------鍵盤掃描函數(shù)----------------*/
  35. void keyscan()  
  36. {  
  37.   if(K1==0)     
  38.   {
  39.     delay(5);      //消除抖動
  40.          if(K1==0)
  41.          {
  42.                   m=100;
  43.      }
  44.   }
  45.   if(K2==0)
  46.   {
  47.     delay(5);
  48.          if(K2==0)
  49.          {
  50.                  m=0;
  51.          }
  52.   }
  53.     if(K3==0)
  54.   {
  55.     delay(5);
  56.          if(K3==0)
  57.          {
  58.             m=50;
  59.          }
  60.   }
  61.   if(K4==0)
  62.   {
  63.     delay(5);
  64.          if(K4==0)
  65.          {
  66.                  naturemode(); //自然風(fēng)模式
  67.          }
  68.   }   
  69. }
復(fù)制代碼



回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 09:32 | 顯示全部樓層
代碼貼上去了,我的意思是,K4按下了,就無法打斷它的運行了
回復(fù)

使用道具 舉報

ID:367180 發(fā)表于 2018-7-8 09:54 | 顯示全部樓層
那你在進入K4之后將K4拉高呢
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 11:24 來自觸屏版 | 顯示全部樓層
HOSS 發(fā)表于 2018-7-8 09:54
那你在進入K4之后將K4拉高呢

沒用,而且K4按下后里面的內(nèi)容不能循環(huán)反復(fù)運行,也就是電機不能有規(guī)律的運行
回復(fù)

使用道具 舉報

ID:367222 發(fā)表于 2018-7-8 11:39 | 顯示全部樓層
試著把naturemode()改短一些,
naturemode()
{         
         m=100;
         delay(1000);
         m=0;
         delay(3000);
       }
主函數(shù)開頭加個while(1),每完成一個周期檢測key狀態(tài)
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 13:48 來自觸屏版 | 顯示全部樓層
ahahaha1331 發(fā)表于 2018-7-8 11:39
試著把naturemode()改短一些,
naturemode()
{         

我主函數(shù)就是不斷掃描鍵盤的,但那個函數(shù)改短就無法完成我要的功能啊。。。
回復(fù)

使用道具 舉報

ID:367321 發(fā)表于 2018-7-8 14:52 | 顯示全部樓層
在K4按鍵對應(yīng)的執(zhí)行程序中設(shè)置某個狀態(tài)變量的值,在按鍵識別程序中,如果識別到按鍵并且這個狀態(tài)變量的值不滿足則執(zhí)行對應(yīng)按鍵的執(zhí)行代碼
回復(fù)

使用道具 舉報

ID:257407 發(fā)表于 2018-7-8 16:01 | 顯示全部樓層
意思是按下那個功能鍵過后,其他鍵都失效了嗎?你可以看看是不是if判鍵語句是無限循環(huán),如果是無限循環(huán)了程序就在if里面運行,其它的功能都失效了。如果不是無限循環(huán)再找找其它原因吧
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 16:43 來自觸屏版 | 顯示全部樓層
maxuewen 發(fā)表于 2018-7-8 14:52
在K4按鍵對應(yīng)的執(zhí)行程序中設(shè)置某個狀態(tài)變量的值,在按鍵識別程序中,如果識別到按鍵并且這個狀態(tài)變量的值不 ...

能直接改下程序嗎??
回復(fù)

使用道具 舉報

ID:362355 發(fā)表于 2018-7-8 17:20 來自觸屏版 | 顯示全部樓層
1174375244 發(fā)表于 2018-7-8 16:01
意思是按下那個功能鍵過后,其他鍵都失效了嗎?你可以看看是不是if判鍵語句是無限循環(huán),如果是無限循環(huán)了程 ...

就是必須得K4那段程序跑完了,其他按鍵才能有效,中途即使有其他按鍵按下,也沒用
回復(fù)

使用道具 舉報

ID:257407 發(fā)表于 2018-7-9 16:00 | 顯示全部樓層
我是貔貅 發(fā)表于 2018-7-8 09:32
代碼貼上去了,我的意思是,K4按下了,就無法打斷它的運行了

你這段代碼,當(dāng)你按下那個鍵就會調(diào)用這個函數(shù),知道執(zhí)行結(jié)束退出這個函數(shù)。如果你想在中途按鍵生效,我認為你可以加return語句,按下一個鍵返回一個值,不按就返回0,根據(jù)你返回值執(zhí)行相應(yīng)操作,但是這種比較麻煩。如果你不介意的話,也可以用goto語句跳轉(zhuǎn),當(dāng)你按下那個鍵就直接跳到那里,但是goto語句要盡量避免,所以不建議使用,只是我覺得不改變你函數(shù)結(jié)構(gòu)的情況下goto簡單一點
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表