Zigbee3.0学习笔记@TI ZSTACK@LED使用

本文介绍了在Zigbee3.0协议栈TI ZSTACK上,如何配置和控制LED。在hal_board_cfg.h文件中定义了LED的配置,通过宏定义BV(n)设置高电平有效的LED。初始化工作包括在hal_board_cfg.h中设置LED方向为输出,在hal_led.c中设置LED初始状态为关闭。驱动函数包含灯光模式选择、闪烁控制等,提供了灵活的LED控制方式。
摘要由CSDN通过智能技术生成

#LED配置
代码位于hal_board_cfg.h文件中
TI开发板有4个LED灯,P1_0 P1_1 P1_4 P0_1,都是高电平有效ACTIVE_HIGH
宏定义BV(n)函数 1<<(n) 表示1左移的位数,即寄存器置1的位数

#if defined (HAL_BOARD_CC2530EB_REV17) && !defined (HAL_PA_LNA) && \
    !defined (HAL_PA_LNA_CC2590) && !defined (HAL_PA_LNA_SE2431L) && \
    !defined (HAL_PA_LNA_CC2592)
  #define HAL_NUM_LEDS            3
#elif defined (HAL_BOARD_CC2530EB_REV13) || defined (HAL_PA_LNA) ||  \
      defined (HAL_PA_LNA_CC2590)  || defined (HAL_PA_LNA_CC2592) || \
      defined (HAL_PA_LNA_SE2431L)
  #define HAL_NUM_LEDS            1
#else
  #error Unknown Board Indentifier
#endif

#define HAL_LED_BLINK_DELAY()   st( { volatile uint32 i; for (i=0; i<0x5800; i++) { }; } )

/* 1 - Green */
#define LED1_BV           BV(0)
#define LED1_SBIT         P1_0
#define LED1_DDR          P1DIR
#define LED1_POLARITY     ACTIVE_HIGH

#if defined (HAL_BOARD_CC2530EB_REV17)
  /* 2 - Red */
  #define LED2_BV           BV(1)
  #define LED2_SBIT         P1_1
  #define LED2_DDR          P1DIR
  #define LED2_POLARITY     ACTIVE_HIGH

  /* 3 - Yellow */
  #define LED3_BV           BV(4)
  #define LED3_SBIT         P1_4
  #define LED3_DDR          P1DIR
  #define LED3_POLARITY     ACTIVE_HIGH

#ifdef ENABLE_LED4_DISABLE_S1
  /* 4 - Orange */
  #define LED4_BV             BV(1)
  #define LED4_SBIT           P0_1
  #define LED4_DDR            P0DIR
  #define LED4_POLARITY       ACTIVE_HIGH
  #define LED4_SET_DIR()      do {LED4_DDR |= LED4_BV;} while (0)
#else
  #define LED4_SET_DIR()
#endif
#endif

LED置位位于hal_led.h中

#define HAL_LED_1     0x01
#define HAL_LED_2     0x02
#define HAL_LED_3     0x04
#define HAL_LED_4     0x08
#define HAL_LED_ALL   (HAL_LED_1 | HAL_LED_2 | HAL_LED_3 | HAL_LED_4)

/* Modes */
#define HAL_LED_MODE_OFF     0x00
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值