[問題] 如何將此程式碼 用迴圈的方式表達

作者: lhz135 (PPP)   2019-12-22 23:35:58
編譯器(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表達呢?
這不是作業 純粹想了解演算法而已
以後應該可能會再遇到這種狀況吧?
以上請指教 感謝
作者: jerryh001   2019-12-22 23:59:00
把0 1那些訊號寫成二維陣列
作者: ko27tye (好滋好滋)   2019-12-23 01:38:00
2層for迴圈 將訊號額外做成一個動態表 在第一層給訊號值和清空 第二層for迴圈執行digitalWrite
作者: s4300026 (s4300026)   2019-12-23 08:50:00
dw(i+8; i%4=0+j夷%4=1+j?1:0);
作者: nevak (^o^)   2019-12-23 16:43:00
看起來是bit rotation: https://glot.io/snippets/fj15c65pcl補 https://glot.io/snippets/fj15c65pcl如果只有這四種組合的話,其實參數寫成array再用迴圈查表比較實際就是了
作者: yvb   2019-12-23 21:04:00
作者: Schottky (順風相送)   2019-12-23 21:17:00
樓上高手!這就是傳說中的 meta programming 嗎?厲害!
作者: lhz135 (PPP)   2019-12-24 00:46:00
高手!!!
作者: jass970991 (半糖綠假面超人)   2019-12-24 08:47:00
%5=1或2啊不行
作者: iaminanl (好MAN)   2019-12-24 09:20:00
高手XDDDDDD
作者: sppmg (sppmg)   2019-12-26 01:07:00
XD
作者: yoco (眠月)   2018-01-02 14:58:00
驚世駭俗 XD
作者: aiwhat   2018-01-05 07:19:00
把printf改成function call之後的確是原PO要的答案沒錯啊

Links booklink

Contact Us: admin [ a t ] ucptt.com