[应用方案] 使用MS51 SPI 来模拟ARGB LED 的时序并实现呼吸灯效果

[复制链接]
1538|2
 楼主| zhuomuniao110 发表于 2024-6-21 22:35 | 显示全部楼层 |阅读模式
s51, pi, RGB, LED, GB
分享的不仅仅是代码,而是背后的逻辑,如何使用SPI驱动,如何看着像呼吸的感觉。
EC_MS51_ARGB_Breathing_Effect_V1.00 (1).zip (1.48 MB, 下载次数: 2)
6510166758f972ed88.png

SPI 时钟频率
程序中设定系统时钟HIRC 为24 MHz 以及SPI 时钟除频值为8,由此可计算出SPI 时钟速率为3 MHz,这代表一个SPI 时钟为 0.333 us。换句话说,逻辑’0’ 映像为SPI 位样式为‘1000’,如图 1‑4所示; 逻辑’1’ 映像为SPI 位样式为‘1110’,亦即3 个字节的RGB 数据格式可转化成12 个字节的SPI 数据格式。

3459166758fb5bf505.png

 楼主| zhuomuniao110 发表于 2024-6-21 22:35 | 显示全部楼层
代码工作流程如下:
1. main.c 中初始化MS51 相关外设,包含HIRC、SPI、与 Timer 3
2. 在while循环中呼叫Breathing_TOPDOWN()来计算出相对应的ARGB LED 亮度
3. 使用 SPI_Send() 来模拟ARGB LED 时序
 楼主| zhuomuniao110 发表于 2024-6-21 22:36 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

233

主题

3529

帖子

11

粉丝
快速回复 在线客服 返回列表 返回顶部