看板 C_and_CPP 關於我們 聯絡資訊
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出) arduino 問題(Question): 如何將下列程式碼 用迴圈表現 程式碼(Code):(請善用置底文網頁, 記得排版,禁止使用圖檔) void stepForward(){ digitalWrite(8,1); digitalWrite(9,1); digitalWrite(10,0); digitalWrite(11,0); delay(t); digitalWrite(8,0); digitalWrite(9,1); digitalWrite(10,1); digitalWrite(11,0); delay(t); digitalWrite(8,0); digitalWrite(9,0); digitalWrite(10,1); digitalWrite(11,1); delay(t); digitalWrite(8,1); digitalWrite(9,0); digitalWrite(10,0); digitalWrite(11,1); delay(t); } 補充說明(Supplement): 這是步進馬達2相激磁的自定義函式 如以前老師上課所說的 有些特殊顯示的跑馬燈文字會變得很困難 上述的程式 除了用自定義函式 再呼叫之外 請教有沒有高手 可以用for while do while表達呢? 這不是作業 純粹想了解演算法而已 以後應該可能會再遇到這種狀況吧? 以上請指教 感謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.171.240.182 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1577028961.A.3DE.html
jerryh001: 把0 1那些訊號寫成二維陣列 12/22 23:59
ko27tye: 2層for迴圈 將訊號額外做成一個動態表 在第一層給訊號值 12/23 01:38
ko27tye: 和清空 第二層for迴圈執行digitalWrite 12/23 01:39
s4300026: dw(i+8; i%4=0+j夷%4=1+j?1:0); 12/23 08:50
nevak: 看起來是bit rotation: https://glot.io/snippets/fj15c65 12/23 16:43
nevak: pcl 12/23 16:43
nevak: 補 https://glot.io/snippets/fj15c65pcl 12/23 16:43
nevak: 如果只有這四種組合的話,其實參數寫成array再用迴圈查表 12/23 16:45
nevak: 比較實際就是了 12/23 16:45
yvb: https://ideone.com/6ZJDSn 12/23 21:04
Schottky: 樓上高手!這就是傳說中的 meta programming 嗎?厲害! 12/23 21:17
lhz135: 高手!!! 12/24 00:46
jass970991: %5=1或2 12/24 08:47
jass970991: 啊不行 12/24 08:49
iaminanl: 高手XDDDDDD 12/24 09:20
sppmg: XD 12/26 01:07
yoco: 驚世駭俗 XD 01/02 14:58
aiwhat: 把printf改成function call之後的確是原PO要的答案沒錯啊 01/05 07:19