电子电工单片机
发表于 2024-1-11 23:10:10
梁工 发表于 2024-1-11 21:48
使用各种核心板,一定要注意看电路原理图和PCB,是否焊有零件影响测试。 ...
是的,所以在这里提个醒{:tongue:}
神农鼎
发表于 2024-1-12 07:54:10
感谢提醒大家 MCU 软件开发,也要看原理图
大补洞
发表于 2024-1-14 12:04:00
本帖最后由 大补洞 于 2024-1-14 12:49 编辑
请教老师一个问题:
使用用8H4K64TL,当时运行DMA发送WS2812数据时,无论是否开启DMA中断(最低优先级),时间都会慢50%,而我关闭105行的代码后,时间又正常了。
时钟设置是1毫秒中断一次,最高优先级。T0Count变量是16位,t0变量是8位,运算并不会占用太多时间。
期待老师答疑,谢谢!{:handshake:}
补充一点,当设置成间隔20毫秒或以上才运行DMA的话,时间就正常了,很疑惑,这为什么能影响时钟中断。
梁工
发表于 2024-1-14 14:41:42
大补洞 发表于 2024-1-14 12:04
请教老师一个问题:
使用用8H4K64TL,当时运行DMA发送WS2812数据时,无论是否开启DMA中断(最低优先级), ...
不知道你的SPI数据是多少字节。
WS2812的数据率为800Kbit/S,即100KB/S,也就是10us一个字节,你1ms启动一次SPI-DMA,则最多可以发送100个字节(时间要少于100字节,因为装载处理需要时间),一个灯需要12个字节,所以你1ms启动一次DMA,做多可以8个灯,甚至更少才会正常。
这就是你为什么用20ms间隔就正常了的原因。
大补洞
发表于 2024-1-14 16:47:50
梁工 发表于 2024-1-14 14:41
不知道你的SPI数据是多少字节。
WS2812的数据率为800Kbit/S,即100KB/S,也就是10us一个字节,你1ms启动 ...
总共200个LED灯。我是这么想的,因为dma的优先级比时钟中断低,如果ws2812字节太多的话,不是应该LED显示不正常,而时钟保证准确吗?现在反倒是LED正常,时钟不正常了
梁工
发表于 2024-1-14 17:19:35
大补洞 发表于 2024-1-14 16:47
总共200个LED灯。我是这么想的,因为dma的优先级比时钟中断低,如果ws2812字节太多的话,不是应该LED显示 ...
不知道你说的时钟是指的什么时钟?
200个灯2400个字节,分10次发送,一次240字节,耗时6ms,所以你要间隔8ms或以上才会正常。你1ms就启动一次DMA,才发了1/6数据有启动,并且你说能正常,这个我没法想象。
大补洞
发表于 2024-1-15 14:41:59
梁工 发表于 2024-1-14 17:19
不知道你说的时钟是指的什么时钟?
200个灯2400个字节,分10次发送,一次240字节,耗时6ms,所以你要间隔 ...
是15ms启动一次dma,1ms启动一次定时器计时
梁工
发表于 2024-1-15 15:40:08
大补洞 发表于 2024-1-15 14:41
是15ms启动一次dma,1ms启动一次定时器计时
哦,没留意还有一个模15的条件。
按理,15ms启动一次,传输值需要6ms,不会有问题的。并且DMA中断耗时是us级别的,不会明显影响你别的定时。
xxkj2010
发表于 2024-1-25 20:44:58
不错!有空试一下。
电子电工单片机
发表于 2024-1-26 19:31:09
SPI DMA 输出控制WS2812三基色彩灯
转接板,直接插在开天斧上,4个位置全部引出,接线方便整洁,快速测试学习
分享电子知识助力电子爱好者
https://www.bilibili.com/video/B ... 663c6493e23ad5c8c0a]
视频演示效果《《点击
页:
1
2
3
[4]
5
6
7
8
9
10
11
12
13