更改

跳转至: 导航搜索

LED 闪烁控制软件模块

添加2,135字节2019年12月9日 (一) 16:22
无编辑摘要
#define LED_BLINK4_OFF_MS (LED_BLINK4_PERIOD - LED_BLINK4_ON_MS)
</syntaxhighlight>
 
===== 闪烁次数定义 =====
在代码中,各个闪烁状态都有相应的次数限制。其中0表示此状态闪烁结束,将进行下一个状态,0xFF表示永久闪烁,直到当前状态被人为改变,即闪烁次数被置零,或改为其他数值;或被弹出。<syntaxhighlight lang="c" line="1">
#define LED_BLINK_STOP 0
#define LED_BLINK_FOREVER 0xFF
</syntaxhighlight>
 
===== 应用函数声明 =====
在用户层提供了两种方式。一种是普通模式,一种是栈模式。
 
普通模式中,开发者只需调用LED_Set函数,即可对当前led状态进行设置。状态结束后,led处在灭状态,等待用户进行下个状态设置。而在栈模式中,开发者调用LED_StackPush函数时,会将led状态压入栈中,并设置led状态。当led闪烁状态结束后,继续之前led状态,直到栈空为至。当然在这个过程中开发者也可以调用LED_Set函数,对当前led闪烁状态进行设置。只是led闪烁状态结束后会继续栈的上个led状态,而不会继续LED_Set函数调用前的状态。<syntaxhighlight lang="c" line="1">
/*initial led module*/
void LED_Init(void);
/*set the led status*/
void LED_Set(eLEDStatus,uint8_t times);
 
#ifdef LED_PRORITY_EN
/*push the led status to ledstack.it will be placed at the top*/
bool LED_StackPush(eLEDStatus,uint8_t times);
 
/*pop the top node from ledstack*/
void LED_StackPop(void);
 
/*clear stack*/
void LED_StackClear(void);
#endif
 
</syntaxhighlight>其中与栈有关的函数是通过宏LED_PRORITY_EN来控制。
 
{| class="wikitable"
|+
!函数名
!解释
!
|-
|void LED_Init(void)
|对LED闪烁模块进行初始化。在任何函数调用之前进行调用
|
|-
|void LED_Set( eLEDStatus status,uint8_t times)
|设置led闪烁状态
status:设置的led状态
 
times:闪烁次数
|
|-
|bool LED_StackPush(eLEDStatus status, uint8_t times)
|设置led闪烁状态,并压入栈中
status:设置的led状态
 
times:闪烁次数
|
|-
|void LED_StackPop(void)
|弹出栈顶状态
|
|-
|void LED_StackClear(void)
|清空栈里所有led状态,并将led设置灭状态
|
|}
119
个编辑

本PDF由谷雨文档中心自动生成,点击下方链接阅读最新内容。

取自“http://doc.iotxx.com/特殊:移动版差异/2507

导航菜单