LED循环播放节目

来源:互联网 发布:美国失业率数据 编辑:程序博客网 时间:2024/04/29 13:20

        在LED行业,一般都会有多个节目显示,假如现在有10节目,里面的节目数据可能会为空或者不为空,每点击一下切换节目按钮,就切换下一条节目。当然,可以选择播放指定的节目,也可以循环播放所有的节目。当我们选择了循环播放节目的时候,加入1、3、5、7、9都存在节目,其他的节目为空,这里我们就希望,先播放第1条节目,然后播放第三条节目,之后按照这个顺序播放所有后续的节目,播放完毕后,又切换到第一条节目,这样一直循环下去。所以,现在就不罗嗦了,下面代码片段就是实现该功能。

        代码中的program数组中0代表该节目为空,1代表该节目存在。


#include <stdio.h>typedef unsigned char uint8_t;//p:搜索的首地址//len:搜索的长度//curItem: 数组中搜索的起始位置//返回: 从数组的起始位置后面开始搜索,直到搜索到里面数据为的1地方停止,返回该位置,未搜索到,返回255uint8_t FindNextItem(uint8_t *p, uint8_t len, uint8_t curItem){uint8_t  i = curItem + 1, ret = 255;for (; i <= curItem + len; i++){if (p[i % len]){ret = i;break;}}return ret;}int main(){uint8_t program[10] = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0};uint8_t nextItem = 0;nextItem = FindNextItem(program, 10, 4);printf("the next item is %d\r\n", nextItem);return 1;}


0 0