Re: [問題] 按鍵加速程式碼

看板C_and_CPP (C/C++)作者 (社會很年青)時間5年前 (2020/02/20 14:48), 5年前編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《TZYuan (5ichiya)》之銘言: : 開發平台(Platform): (Ex: Win10, Linux, ...) : Win10 : 編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) : Arduino IDE : 個位大大好,新手首PO,想說arduino跟C滿像的就PO在這了,如違反板規再煩請告知。 : 現在在寫數字選單,假設選單從1到100,想要按一次右鍵,參數就+1,按著右鍵就連續加 : ,且按著越久,數字增加越快,加到100之後就跳到1繼續,左鍵類似,只是數字是減的。 : 有些電器調時間就有這個功能,google很久,一直找不到,不知道要打甚麼關鍵字。 : 請問要打甚麼關鍵字,或是要怎麼寫迴圈,有推薦現成的函式庫也可以。 : 現在已經用while迴圈寫好按一次可以+1,想問連續加要怎麼寫? : 以下是目前的code : stick = ps2x.Analog(PSS_LX), DEC; : while( stick == 0 ){ : val--; : if (val<1) : val=5; : Serial.print("Speed : "); : Serial.print(val); : Serial.println(" um/s"); : delay(500); : break; : } : while( stick == 255 ){ : val++; : if (val>5) : val=1; : Serial.print("Speed : "); : Serial.print(val); : Serial.println(" um/s"); : delay(500); : break; : } : 感激不盡~ #define TRIGGER_TIME (1500) #define REGULAR_TIME (500) #define BOOST_TIME (250) #define MAX_VALUE (5) #define MIN_VALUE (1) unsigned long st; int tri_f = 1; int stick = ps2x.Analog(PSS_LX); while(1) { if (tri_f) { tri_f = 0; st = millis(); } if (stick == 0) val = ++val > MAX_VALUE? MIN_VALUE: val; else if (stick == 255) val = --val < MIN_VALUE? MAX_VALUE: val; else break; if (millis() - st > TRIGGER_TIME) delay(BOOST_TIME); else delay(REGULAR_TIME); } 大概4這樣,沒有驗過自己檢查 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.68.97 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1582181295.A.182.html ※ 編輯: qscgy4 (220.132.68.97 臺灣), 02/20/2020 14:49:51
文章代碼(AID): #1UJYkl62 (C_and_CPP)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
文章代碼(AID): #1UJYkl62 (C_and_CPP)