1724|1

9720

帖子

24

TA的资源

版主

楼主
 

bluenrg-1 真随机数实现节日彩灯效果 [复制链接]

 

使用bluenrg-1的RNG的真随机数功能生成随机色彩,再通过WS2812B彩灯显示
如果使用灯带再缩短更新延时效果会更好
生成随机数的代码,先等待数据准备好再读取数据,RNG模块一次可以读取一个16位的数据
  1. uint8_t rng_read(void)
  2. {  
  3.     uint8_t random;
  4.     /* Loop until the RNG Data Ready is SET */
  5.     while (RNG_GetFlagStatus() != SET);
  6.     random = (uint8_t)(RNG_GetValue() % 255);
  7.     return random;
  8. }
复制代码



WS2812B使用的是24位,所以每次读取8位,连续读取3次填充一颗LED灯珠
  1. void ws2812b_display(void)
  2. {
  3.   uint16_t i;  
  4.   uint32_t colors[WS2812B_COUNT];
  5.   RTC_DateTimeType RTC_DateTime;
  6.   rtc_get_time(&RTC_DateTime);
  7.   //清除源数据,绘制刻度
  8.   for(i=0;i<WS2812B_COUNT;i++)
  9.   {
  10.       colors[i] = rng_read() << 16 | rng_read() << 8 | rng_read();
  11.   }
  12.   if(index >= 24 || RTC_DateTime.Second == 0)index = 0;
  13.   //填充完一列8个点后显示      
  14.   IntColorsToWS2812BBytes(ws2812b_buffer,colors,WS2812B_COUNT);
  15.   DMASpi_Sending((uint32_t)ws2812b_buffer,WS2812B_COUNT * 9);
  16. }
复制代码







https://training.eeworld.com.cn/course/4063/learn?preview=1#lesson/17835


https://training.eeworld.com.cn/course/4063/learn?preview=1#lesson/17836

工程文件
游客,如果您要查看本帖隐藏内容请回复


最新回复

厉害哟,没时间来做  详情 回复 发表于 2019-1-29 23:02
点赞 关注
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾
 
 

回复
举报

30

帖子

0

TA的资源

一粒金砂(中级)

沙发
 
厉害哟,没时间来做
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表