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

看板C_and_CPP作者 (PPP)時間4年前 (2019/12/22 23:36), 編輯推噓11(1107)
留言18則, 12人參與, 5年前最新討論串1/3 (看更多)
編譯器(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

12/22 23:59, 4年前 , 1F
把0 1那些訊號寫成二維陣列
12/22 23:59, 1F

12/23 01:38, 4年前 , 2F
2層for迴圈 將訊號額外做成一個動態表 在第一層給訊號值
12/23 01:38, 2F

12/23 01:39, 4年前 , 3F
和清空 第二層for迴圈執行digitalWrite
12/23 01:39, 3F

12/23 08:50, 4年前 , 4F
dw(i+8; i%4=0+j夷%4=1+j?1:0);
12/23 08:50, 4F

12/23 16:43, 4年前 , 5F
看起來是bit rotation: https://glot.io/snippets/fj15c65
12/23 16:43, 5F

12/23 16:43, 4年前 , 6F
pcl
12/23 16:43, 6F

12/23 16:43, 4年前 , 7F

12/23 16:45, 4年前 , 8F
如果只有這四種組合的話,其實參數寫成array再用迴圈查表
12/23 16:45, 8F

12/23 16:45, 4年前 , 9F
比較實際就是了
12/23 16:45, 9F

12/23 21:04, 4年前 , 10F

12/23 21:17, 4年前 , 11F
樓上高手!這就是傳說中的 meta programming 嗎?厲害!
12/23 21:17, 11F

12/24 00:46, 4年前 , 12F
高手!!!
12/24 00:46, 12F

12/24 08:47, 4年前 , 13F
%5=1或2
12/24 08:47, 13F

12/24 08:49, 4年前 , 14F
啊不行
12/24 08:49, 14F

12/24 09:20, 4年前 , 15F
高手XDDDDDD
12/24 09:20, 15F

12/26 01:07, 4年前 , 16F
XD
12/26 01:07, 16F

01/02 14:58, 5年前 , 17F
驚世駭俗 XD
01/02 14:58, 17F

01/05 07:19, 5年前 , 18F
把printf改成function call之後的確是原PO要的答案沒錯啊
01/05 07:19, 18F
文章代碼(AID): #1T_urXFU (C_and_CPP)
文章代碼(AID): #1T_urXFU (C_and_CPP)