Biu~笔记:高通蓝牙ADK(17)--LED配置

       Biu~上篇带大家体验了呼吸灯的效果,这篇开始就带大家怎么把呼吸灯加进默认工程,但单单把上篇的几个函数塞进去就变得很生硬,不能灵活配置。所以,我们从默认配置的方式出发,让一切灯光效果就动一两个参数即可。在此之前,还是要带大家熟悉默认的配置是怎么样的

      

       我们知道LED的配置是在earbud_led.c中,用一个个led_pattern_t结构体变量组成的数组来表示每种闪灯方式。程序通过遍历这个数组去执行每个结构体变量的数据。这可以方便明了地查看每种闪灯方式的执行顺序,所以后面呼吸灯的应用也应该要放在这些数组里面,方便查看修改。

       在led_pattern_t结构体里面就只有两个变量,一个code,一个data。Code是用来记录动作类型,data则是动作的参数。我们先了解一下code一共有多少种动作,和动作对应的data是什么意义


LED_PATTERN_END:很简单,就是表示这个闪灯模式结束了,可以转到别的模式了,data没意义

LED_PATTERN_ON:表示要开启某个LED灯,data为指定的那个LED IO

LED_PATTERN_OFF:则表示要关闭某个LED灯,data为指定的那个LED IO

LED_PATTERN_TOGGLE:表示翻转某个LED的状态,data为指定的那个LED IO

LED_PATTERN_REPEAT:表示再次执行这一模式,data中有两部分组成,低7位为再重复的次数,第七位以上的数据表示从第几个参数开始重复

LED_PATTERN_DELAY:表示延时,date是ms为单位的延时时间

LED_PATTERN_SYNC:同步时钟,用来和peer同步一起亮,data为延时时间,和delay不同的是,这个时间只有在能同步的时候用,不同步不用,而且时间会跟同步的时间差做加减法,所以不易设过大或过小的时间

LED_PATTERN_LOCK:为该模式上锁,防止别的模式打断,data为1是上锁,0为解锁

       在工程代码中,为了直观方便的编写,会把code和data绑在一起



最后按自己想法组合使用就能实现想要的效果了

       而这些组合都会在ledManager_HandleInternalUpdate做详细处理,这里的函数可以结合上述的说明去看,还是可以轻松理解的,但如果不懂指针的话,
那就算了( ̄へ ̄)。这个函数返回值的是一个布尔值,这个值是指示要不要改变灯的状态,要改就会用到ledManager_Update这个函数去修改灯的状态。所以在后续呼吸灯的加入中,我们要修改ledManager_Update这个函数,去完成我们的PWM应用,还要修改ledManager_HandleInternalUpdate这个函数,去识别配置数组的数据,这样做了之后,后面使用PWM就变得很简单。下一篇就从这两个方面进行修改,下期见!!

 

        以上是本期博文的全部内容,如有疑问请在博文下方评论留言,或者有什么想了解的都可以留言,我会尽量安排上(o´ω`o)و。谢谢大家浏览,我们下期再见。

 

 

多看文档,多上官网

多看文档,多上官网

多看文档,多上官网

★博文内容均由个人提供,与平台无关,如有违法或侵权,请与网站管理员联系。

★文明上网,请理性发言。内容一周内被举报5次,发文人进小黑屋喔~

评论

我很菜

我很菜

2021年8月3日
大佬第二次看了,终于明白啦,感谢
Leao

Leao

2021年6月25日
请问LED4和LED5怎么点亮呢?配置工具好像没有作用。
我很菜

我很菜

2021年6月17日
大佬求联系方式,想办会员