- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ZigBee学习之25——InitBoard()
//初始化板上的IO
InitBoard( OB_COLD );
//参数【OnBoard.h】
#define OB_COLD 0
#define OB_WARM 1
#define OB_READY 2
//【OnBoard.c】
void InitBoard( byte level )
{
if ( level == OB_COLD )
{
//关中断,最初的时候已经见过了
osal_int_disable( INTS_ALL );
// 关闭所有的LED,调用了LED设置函数
HalLedSet( HAL_LED_ALL, HAL_LED_MODE_OFF );
//【hal_led.h】
// #define HAL_LED_ALL (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4),我这里呢只有两个LED,所以可以屏蔽掉LED3,LED4,或者将后两个LED也映射到前面两个LED(其实就是宏定义啦)
// #define HAL_LED_MODE_OFF 0x00
//#define HAL_LED_MODE_ON 0x01
//#define HAL_LED_MODE_BLINK 0x02
//#define HAL_LED_MODE_FLASH 0x04
//#define HAL_LED_MODE_TOGGLE 0x08
//LED设置函数【hal_led.c】
uint8 HalLedSet (uint8 leds, uint8 mode)
{
#if (defined (BLINK_LEDS)) (HAL_LED == TRUE)
//前提条件是定义了闪烁LED和LED硬件驱动服务使能;
// HAL_LED定义在【hal_board_cfg.h】
#ifndef HAL_LED
#define HAL_LED TRUE
//当设为FALSE时就不使用LED
#endif
#if (!defined BLINK_LEDS) (HAL_LED == TRUE)
#define BLINK_LEDS
#endif
uint8 led;
HalLedControl_t *sts;
// LED控制结构体
typedef struct {
uint8 mode; /* 操作模式 */
uint8 todo; /* 剩余的闪烁周期数 */
uint8 onPct; /* 周期中所占的比例 */
uint16 time; /* 开关周期时间(msec) */
uint32 next; /* 下次改变的时间 */
} HalLedControl_t;
switch (mode)
{
case HAL_LED_MODE_BLINK:
HalLedBlink (leds, 1, HAL_LED_DEFAULT_DUTY_CYCLE, HAL_LED_DEFAULT_FLASH_TIME);
//LED设置的一些默认参数【hal_led.h】
#define HAL_LED_DEFAULT_MAX_LEDS 4
#define HAL_LED_DEFAULT_DUTY_CYCLE 5
#define HAL_LED_DEFAULT_FLASH_COUNT 50
#define HAL_LED_DEFAULT_FLASH_TIME 1000
//LED闪烁函数【hal_led.c】
void HalLedBlink (uint8 leds, uint8 numBlinks, uint8 percent, uint16 period)
{
#if (defined (BLINK_LEDS)) (HAL_LED == TRUE)
//同样先判断是否启用了LED并且使用LED闪烁功能
uint8 led;
HalLedControl_t *sts;
if (leds percent period)
//判断参数的有效性,percent参数指明一个周期中LED将开启的时间
{
if (percent 100)
//如果一个周期中开启时间小于100%
{
led = HAL_LED_1;
leds = HAL_LED_ALL;
//屏蔽掉不想要操作的LED
sts = HalLedStatusControl.HalLedControlTable;
//HalLedStatusControl是事先定义好的一个结构体
typedef struct
{
HalLedControl_t HalLedControlTable[HAL_LED_DEFAULT_MAX_LEDS];
uint8 sleepActive;
} HalLedStatus_t;
#define HAL_LED_DEFA
文档评论(0)