作者katuski (牙月)
看板Electronics
标题[问题] arduino的回圈输出程式问题
时间Thu Oct 21 16:46:52 2021
请教各位先进。
俺已经写好arduino的三个输出。
EX
2号
analogWrite(2,a1);
delay(100);
analogWrite(2,0);
delay(100);
以下2000行...
3号
analogWrite(3,a1);
delay(200);
analogWrite(3,0);
delay(250);
以下2000行...
4号
analogWrite(4,a1);
delay(150);
analogWrite(4,0);
delay(500);
以下2000行...
但是因为个别输出的时间点都不同,就像是合奏的乐谱,
如果只写在一个loop里面的话,
用delay去控制要刻很久。
所以想请问有啥偷吃步的写法,可以合并进loop里面。
--
NOW LOADING...
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 118.171.9.172 (台湾)
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Electronics/M.1634806015.A.AA1.html
1F:→ warfjragon: 把dealy时间纪录到阵列里 10/21 17:06
2F:→ HiJimmy: 定时器控制 时序控制 10/21 18:04
3F:推 nissptt: 有别人写好TIMER函数,用millis自己写,应该也可以 10/21 22:53
5F:→ nissptt: 用写好的比较省事! 10/21 22:54
6F:推 nissptt: 也许让arduino跑分时多工RTOS也可以 10/21 23:00
7F:推 nissptt: 下面"不同步"闪烁例子,让我们延续使用delay的坏习惯, 10/21 23:21
8F:→ nissptt: 但又不会卡在一个loop的delay上。 10/21 23:21
10F:推 nissptt: 这是super loop和虚拟多工的差异(闪烁在影片末) 10/21 23:24
11F:推 nissptt: 只用一个arduino 能"合奏"小星星和小甜甜,应该很香了 10/21 23:30
13F:推 nissptt: 上例是让arduino多工的例子,当然你要用LED以外输出呈现 10/21 23:55
14F:→ nissptt: 也可以。 10/21 23:55
15F:→ nissptt: 下例LED就和你要的效果几乎一样, 10/21 23:55
17F:推 nissptt: "山姆来分享"有教如何上RTOS,他和以上例子都是跑FreeRTO 10/21 23:58
18F:→ nissptt: S 10/21 23:58
19F:→ katuski: 大感谢,俺研究一下。 10/22 16:40
20F:推 mmonkeyboyy: 这叫time division multiplexing tdm 从这找就很多了 10/22 21:00
21F:推 nissptt: 以下是用millis 的范例,他讲解得很清楚 11/04 01:24