从Zigbee协议栈底层添加自己的按键配置

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

本实验是基于ZStack-CC2530-2.5.1a版本的协议栈来进行实验的,整个实验需要改动

hal_board_cfg.h、hal_board_cfg.h、hal_key.c、hal_key.h和自己定义的Coordinator.c这5个文件。

注意:添加自己的按键时尽量不要修改协议栈里面的按键程序,自己另行添加即可。

1、hal_key.h

在/* Switches (keys) */下面添加自己的按键定义

#define HAL_KEY_SW_8 0x80

图1:

----------------------------------------------------------------------------------------

2、hal_board_cfg.h

在/* S6 */

#define PUSH1_BV BV(1)

#define PUSH1_SBIT P0_1

#if defined (HAL_BOARD_CC2530EB_REV17)

#define PUSH1_POLARITY ACTIVE_LOW

#elif defined (HAL_BOARD_CC2530EB_REV13)

#define PUSH1_POLARITY ACTIVE_LOW

#else

#error Unknown Board Indentifier

#endif

下面模仿/* S6 */下的程序定义自己的按键值:

/* S8 */

#define PUSH8_BV BV(4)//修改

#define PUSH8_SBIT P0_4//修改

#if defined (HAL_BOARD_CC2530EB_REV17)

#define PUSH8_POLARITY ACTIVE_HIGH

#elif defined (HAL_BOARD_CC2530EB_REV13)

#define PUSH8_POLARITY ACTIVE_LOW

#else

#error Unknown Board Indentifier

#endif

图2:

------------------------------------------------------------------------------------------------------------- 在/* ----------- Push Buttons ---------- */

#define HAL_PUSH_BUTTON1() (PUSH1_POLARITY (PUSH1_SBIT))

#define HAL_PUSH_BUTTON2() (PUSH2_POLARITY (PUSH2_SBIT))

#define HAL_PUSH_BUTTON3() (0)

#define HAL_PUSH_BUTTON4() (0)

#define HAL_PUSH_BUTTON5() (0)

#define HAL_PUSH_BUTTON6() (0)

下定义自己的按键函数

#define HAL_PUSH_BUTTON8() (PUSH8_POLARITY (PUSH8_SBIT))

图3:

---------------------------------------------------------------------------------------------------------------- hal_key.c

在/* SW_6 is at P0.1 */

#define HAL_KEY_SW_6_PORT P0

#define HAL_KEY_SW_6_BIT BV(1)

#define HAL_KEY_SW_6_SEL P0SEL

#define HAL_KEY_SW_6_DIR P0DIR

/* edge interrupt */

#define HAL_KEY_SW_6_EDGEBIT BV(0)

#define HAL_KEY_SW_6_EDGE HAL_KEY_FALLING_EDGE

/* SW_6 interrupts */

#define HAL_KEY_SW_6_IEN IEN1 /* CPU interrupt mask register */

#define HAL_KEY_SW_6_IENBIT BV(5) /* Mask bit for all of Port_0 */

#define HAL_KEY_SW_6_ICTL P0IEN /* Port Interrupt Control register */

#define HAL_KEY_SW_6_ICTLBIT BV(1) /* P0IEN - P0.1 enable/disable bit */

#define HAL_KEY_SW_6_PXIFG P0IFG /* Interrupt flag at source */

下模仿/* SW_6 is at P0.1 */建立自己的按键函数

#define HAL_KEY_SW_8_PORT P0

#define HAL_KEY_SW_8_BIT BV(4) //修改

#define HAL_KEY_SW_8_SEL P0SEL

#define HAL_KEY_SW_8_DIR P0DIR

/* edge interrupt */

相关文档
最新文档