OSAL中LED灯工作方式简介
来源:互联网 发布:荣威rx5 新款有优化吗 编辑:程序博客网 时间:2024/04/30 23:46
/* 关于LED灯的使用,如果需要使用LED的闪烁功能,则需要用到两个比较重要的结构体, 若不需要则可不定义 */ typedef struct { uint8 mode; /* LED的操作模式 */ uint8 left; /* 打开和关闭LED的次数 */ uint8 onPct; /* ON状态的占空比 */ uint16 time; /* 完成打开和关闭一次的时间 */ uint32 next; /* 离下一次状态改变的时间 */ } HalLedControl_t; typedef struct { HalLedControl_t HalLedControlTable[HAL_LED_DEFAULT_MAX_LEDS]; uint8 sleepActive; /* LED的是进入睡眠状态 */ } HalLedStatus_t; #ifdef BLINK_LEDS static HalLedStatus_t HalLedStatusControl; #endif /* 首先系统初始化时会初始化 */ HalLedInit(); /* 设置GPIO口的工作方式,并把所有的灯设置为OFF */ -> HalLedSet(); /* 初始化时调用该函数设置所有LED灯OFF */ -> HalLedOnOff(); /* 最终是该函数设置所有LED灯OFF */ /* 当用户使用控制LED灯时调用下面函数 */ HalLedSet(); /* 若用户只是单纯的打开关闭LED灯,直接在调用HalLedOnOff()操作 */ -> HalLedOnOff(); /* 最终是该函数设置所有LED灯OFF */ HalLedSet(); /* 若用户需要开启灯闪烁 */ -> HalLedBlink(); /* 填充上面说的结构体 */ -> osal_set_event(); /* 发送 HAL_LED_BLINK_EVENT 事件 */ Hal_ProcessEvent(); /* 事件发送之后,系统会调用该函数 */ -> HalLedUpdate(); /* 根据结构体更新LED的状态, */ ->osal_start_timerEx(); /* 在最小的next之后发送HAL_LED_BLINK_EVENT事件 */ ...... Hal_ProcessEvent(); /* 然后就一直循环,直到闪烁的次数完成 */
在LED的控制中,有两个变量是很重要的,大家需要注意
static uint8 HalLedState; // LED state at last set/clr/blink update
static uint8 preBlinkState; // Original State before going to blink mode
// bit 0, 1, 2, 3 represent led 0, 1, 2, 3
0 0
- OSAL中LED灯工作方式简介
- ZigBee协议栈(二)--OSAL控制LED灯
- CC2541 OSAL工作原理
- git工作方式简介
- 浅析CC2540 OSAL工作流程
- 第十四节 OSAL工作原理
- OSAL
- OSAL
- MyOS键盘LED灯设置工作正常
- 蓝牙BLE AmoMcu cc2540 2541 OSAL 操作系统 LED
- OSAL串口接收发送数据流程简介
- Uboot中点亮LED灯
- JavaScript中this工作方式
- zigbee中OSAL中的task ,event, message
- Z-stack中OSAL任务机制分析
- Z-stack中OSAL任务机制分析
- led点阵操作方式
- 发光字中LED灯接线技巧
- Http标准协议Android网络框架——NoHttp
- 【Android应用开发技术:应用调试】章节列表
- STM32|4-20mA输出电路
- 【Android应用开发技术:应用组件】章节列表
- 数据结构04:树与二叉树
- OSAL中LED灯工作方式简介
- java二叉树非递归之前序遍历
- Xcode LaunchImage 载入界面大小设置
- 【Android应用开发技术:动画开发】章节目录
- 华为OJ(合唱队)
- Linux iso15765 driver
- Tumblr:150亿月浏览量背后的架构挑战
- ppt中的图片批量保存的方法(及像素分辨率换算)
- 在C#中使用devexpress 中的textEDit控件问题