8585|6

9808

帖子

24

TA的资源

版主

请教一个循环流水灯的设计 [复制链接]

比如有10个灯,连续点亮3个灯,从第1个开始亮,1,12,123,234,345,456,567,678,789,89 10,9 10 1,10 1 2,123……这样
原来是通过循环数组实现的,后来觉得那种方法有点二,多少个点就需要多长的数组
于是准备通过计算实现,可能是岁数大了,今天怎么想也没想出来应该怎么弄
有了解的麻烦指点一二,谢谢
此帖出自单片机论坛

最新回复

围观学习,拿点威望看资料。  详情 回复 发表于 2018-12-14 16:19
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复
举报

4008

帖子

0

TA的资源

版主

10个二进制,每位对应一个灯
初始送入3个1
10个二进制位循环移位
此帖出自单片机论坛

点评

比如i代表1~10的灯 index代表当前灯的位置 count = 3代表亮灯的数量 当index=0时,只有i=8,9,0时输出1 index=1时,只有i=9,0,1时输出1 index=2时,只有i=0,1,2时输出1 index=3时,只有i=1,2,3时输出1 大概  详情 回复 发表于 2018-11-26 17:50
每果每一个字节对应一个灯呢?  详情 回复 发表于 2018-11-26 17:45

回复

9808

帖子

24

TA的资源

版主

huo_hu 发表于 2018-11-26 17:44
10个二进制,每位对应一个灯
初始送入3个1
10个二进制位循环移位

每果每一个字节对应一个灯呢?
此帖出自单片机论坛
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

9808

帖子

24

TA的资源

版主

huo_hu 发表于 2018-11-26 17:44
10个二进制,每位对应一个灯
初始送入3个1
10个二进制位循环移位

比如i代表1~10的灯
index代表当前灯的位置
count = 3代表亮灯的数量

当index=0时,只有i=8,9,0时输出1
index=1时,只有i=9,0,1时输出1
index=2时,只有i=0,1,2时输出1
index=3时,只有i=1,2,3时输出1
大概这样
此帖出自单片机论坛
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

9808

帖子

24

TA的资源

版主

自己解决了
  1. #include <stdint.h>
  2. uint8_t test_array[50];
  3. void test(uint16_t index)
  4. {
  5.   int32_t light_count = 10;
  6.   int32_t start_index = index;
  7.   uint16_t hightlight_count = 5;
  8.   int32_t i;
  9.   for(i=0;i<light_count;i++)
  10.   {
  11.     if((start_index >= hightlight_count) ? (i <= start_index && i > ((start_index >= hightlight_count) ? start_index - hightlight_count : light_count + (start_index - hightlight_count))) : (i<= start_index || i > ((start_index >= hightlight_count) ? start_index - hightlight_count:light_count + (start_index - hightlight_count))))
  12.     {
  13.       test_array[i] = 1;
  14.     }
  15.     else
  16.     {
  17.       test_array[i] = 0;
  18.     }
  19.   }  
  20. }
  21. int main()
  22. {
  23.   uint16_t i;
  24.   while(1)
  25.   {
  26.     for(i=0;i<10;i++)
  27.     {
  28.       test(i);
  29.     }
  30.   }
  31. }
复制代码



此帖出自单片机论坛
个人签名虾扯蛋,蛋扯虾,虾扯蛋扯虾

回复

1372

帖子

6

TA的资源

版主

弄个循环队列就可以了
此帖出自单片机论坛
个人签名专注智能产品的研究与开发,专注于电子电路的生产与制造……QQ:2912615383,电子爱好者群: void

回复

3

帖子

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-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表