电子电工单片机 发表于 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
查看完整版本: SPI-DMA输出控制WS2812三基色彩灯程序@8H系列/32G系列,不加反相器, CPU休息