OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 3893|回复: 3

关于ledseq逻辑思路解释,看了3边了,都是卡在这里,还有遥控器的beepseq也是这个

[复制链接]

2

主题

8

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-4
在线时间
9 小时
发表于 2019-8-1 19:57:54 | 显示全部楼层 |阅读模式
1金钱
static void runLedseq( xTimerHandle xTimer )
{
bool leave = false;
const ledseq_t *step;
led_e led = (led_e)pvTimerGetTimerID(xTimer);
if (!ledseqEnabled) return;
while(!leave)
{
  int prio = activeSeq[led];
  if (prio == LEDSEQ_STOP)
   return;
  step = &sequences[prio][state[led][prio]];
  state[led][prio]++;
  xSemaphoreTake(ledseqSem, portMAX_DELAY);
  switch(step->action)
  {
   case LEDSEQ_LOOP:
    state[led][prio] = 0;
    break;
   case LEDSEQ_STOP:
    state[led][prio] = LEDSEQ_STOP;
    updateActive(led);
    break;
   default:  /*LED定时*/
    ledSet(led, step->value); /*定时step->value*/
    if (step->action == 0)
     break;
    xTimerChangePeriod(xTimer, step->action, 0);
    xTimerStart(xTimer, 0);
    leave=true;
    break;
  }
  xSemaphoreGive(ledseqSem);
}
我想不明白这个文件是怎么确定led的逻辑的,想大佬解释一下,卡了很久了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-4
在线时间
9 小时
 楼主| 发表于 2019-8-1 19:59:49 | 显示全部楼层
我想不明白这个序列是怎么就可以确定led的点亮序列的
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2019-8-2 01:52:28 | 显示全部楼层
帮顶
回复

使用道具 举报

2

主题

8

帖子

0

精华

新手上路

积分
45
金钱
45
注册时间
2019-6-4
在线时间
9 小时
 楼主| 发表于 2019-8-2 14:35:36 | 显示全部楼层

谢谢原子哥
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-22 16:41

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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