找回密码
 立即注册
楼主: 梁***

SPI DMA 输出控制WS2812三基色彩灯程序,不加反相器,STC8/STC32

[复制链接]
  • TA的每日心情
    开心
    22 小时前
  • 签到天数: 130 天

    [LV.7]常住居民III

    2

    主题

    26

    回帖

    1041

    积分

    金牌会员

    积分
    1041
    发表于 2024-1-11 23:10:10 | 显示全部楼层
    梁工 发表于 2024-1-11 21:48
    使用各种核心板,一定要注意看电路原理图和PCB,是否焊有零件影响测试。 ...

    是的,所以在这里提个醒
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    550

    主题

    9235

    回帖

    1万

    积分

    管理员

    积分
    13946
    发表于 2024-1-12 07:54:10 | 显示全部楼层
    感谢提醒大家 MCU 软件开发,也要看原理图
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    回帖

    58

    积分

    注册会员

    积分
    58
    发表于 2024-1-14 12:04:00 | 显示全部楼层
    本帖最后由 大补洞 于 2024-1-14 12:49 编辑

    请教老师一个问题:
    使用用8H4K64TL,当时运行DMA发送WS2812数据时,无论是否开启DMA中断(最低优先级),时间都会慢50%,而我关闭105行的代码后,时间又正常了。
    时钟设置是1毫秒中断一次,最高优先级。T0Count变量是16位,t0变量是8位,运算并不会占用太多时间。


    期待老师答疑,谢谢!


    补充一点,当设置成间隔20毫秒或以上才运行DMA的话,时间就正常了,很疑惑,这为什么能影响时钟中断。
    QQ截图20240114115827.png

    点评

    不知道你的SPI数据是多少字节。 WS2812的数据率为800Kbit/S,即100KB/S,也就是10us一个字节,你1ms启动一次SPI-DMA,则最多可以发送100个字节(时间要少于100字节,因为装载处理需要时间),一个灯需要12个字节,所  详情 回复 发表于 2024-1-14 14:41
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2927

    回帖

    6583

    积分

    超级版主

    积分
    6583
     楼主| 发表于 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间隔就正常了的原因。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    回帖

    58

    积分

    注册会员

    积分
    58
    发表于 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正常,时钟不正常了

    点评

    不知道你说的时钟是指的什么时钟? 200个灯2400个字节,分10次发送,一次240字节,耗时6ms,所以你要间隔8ms或以上才会正常。你1ms就启动一次DMA,才发了1/6数据有启动,并且你说能正常,这个我没法想象。  详情 回复 发表于 2024-1-14 17:19
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2927

    回帖

    6583

    积分

    超级版主

    积分
    6583
     楼主| 发表于 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数据有启动,并且你说能正常,这个我没法想象。
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    0

    主题

    7

    回帖

    58

    积分

    注册会员

    积分
    58
    发表于 2024-1-15 14:41:59 来自手机 | 显示全部楼层
    梁工 发表于 2024-1-14 17:19
    不知道你说的时钟是指的什么时钟?
    200个灯2400个字节,分10次发送,一次240字节,耗时6ms,所以你要间隔 ...

    是15ms启动一次dma,1ms启动一次定时器计时

    点评

    哦,没留意还有一个模15的条件。 按理,15ms启动一次,传输值需要6ms,不会有问题的。并且DMA中断耗时是us级别的,不会明显影响你别的定时。  详情 回复 发表于 2024-1-15 15:40
    回复 支持 反对 送花

    使用道具 举报

    该用户从未签到

    46

    主题

    2927

    回帖

    6583

    积分

    超级版主

    积分
    6583
     楼主| 发表于 2024-1-15 15:40:08 | 显示全部楼层
    大补洞 发表于 2024-1-15 14:41
    是15ms启动一次dma,1ms启动一次定时器计时

    哦,没留意还有一个模15的条件。
    按理,15ms启动一次,传输值需要6ms,不会有问题的。并且DMA中断耗时是us级别的,不会明显影响你别的定时。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    14 小时前
  • 签到天数: 154 天

    [LV.7]常住居民III

    67

    主题

    833

    回帖

    2758

    积分

    金牌会员

    积分
    2758
    发表于 2024-1-25 20:44:58 | 显示全部楼层
    不错!有空试一下。
    回复 支持 反对 送花

    使用道具 举报

  • TA的每日心情
    开心
    22 小时前
  • 签到天数: 130 天

    [LV.7]常住居民III

    2

    主题

    26

    回帖

    1041

    积分

    金牌会员

    积分
    1041
    发表于 2024-1-26 19:31:09 | 显示全部楼层
    SPI DMA 输出控制WS2812三基色彩灯

    转接板,直接插在开天斧上,4个位置全部引出,接线方便整洁,快速测试学习
    分享电子知识助力电子爱好者
    [url=【#单片机 #助力电子爱好者 #灯带套件用心设计,助力教学,让你学电子更加容易,赶紧动手来学吧!】 https://www.bilibili.com/video/B ... 663c6493e23ad5c8c0a]
    视频演示效果《《点击[/url]


    截图202401261927253028.jpg

    回复 支持 反对 送花

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

    GMT+8, 2024-4-29 22:51 , Processed in 0.071155 second(s), 67 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表