看板 C_and_CPP 關於我們 聯絡資訊
※ 引述《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