[问题] 如何将此程式码 用循环的方式表达

楼主: 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