zigbee 协议栈 按键驱动
来源:互联网 发布:淘宝退货被拒收怎么办 编辑:程序博客网 时间:2024/05/21 17:58
1、在hal_key.h中增加下面代码,其中第一、二个WDS--是我修改原有的,最后一个WDS--是我增加的。如果增加自己的按键则,像我最后一个WDS-- 增加一样就好了,上面两个WDS--可以不理
/* Switches (keys) */
#define HAL_KEY_SW_1 0x12 // WDS--
#define HAL_KEY_SW_2 0x02 // Joystick right
#define HAL_KEY_SW_5 0x04 // Joystick center
#define HAL_KEY_SW_4 0x08 // Joystick left
#define HAL_KEY_SW_3 0x10 // Joystick down
#define HAL_KEY_SW_6 0x11 // WDS--
#define HAL_KEY_SW_7 0x40 // Button S2 if available
#define HAL_KEY3 0x13 //WDS--
2、在hal_board_cfg.h中增加以下代码,如WDS-- ADD 是我增加的按键
/* S1 */
#define PUSH1_BV BV(1)
#define PUSH1_SBIT P0_1
#if defined (HAL_BOARD_CC2530EB_REV17)
#define PUSH1_POLARITY ACTIVE_HIGH
#elif defined (HAL_BOARD_CC2530EB_REV13)
#define PUSH1_POLARITY ACTIVE_LOW
#else
#error Unknown Board Indentifier
#endif
/* Joystick Center Press */
#define PUSH2_BV BV(0)
#define PUSH2_SBIT P2_0
#define PUSH2_POLARITY ACTIVE_HIGH
//WDS-- ADD
//P0.4
#define PUSH5_BV BV(4)
#define PUSH5_SBIT P0_4
#if defined (HAL_BOARD_CC2530EB_REV17)
#define PUSH5_POLARITY ACTIVE_HIGH
#elif defined (HAL_BOARD_CC2530EB_REV13)
#define PUSH5_POLARITY ACTIVE_LOW
#else
#error Unknown Board Indentifier
#endif
3、在hal_board_cfg.h中增加以下代码,如WDS-- ADD 是我增加的
/* ----------- 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)
//WDS-- ADD
#define HAL_PUSH_BUTTON5() (PUSH5_POLARITY (PUSH5_SBIT))
4、在hal_key.c中增加以下代码,如WDS-- ADD 是我增加的
#define HAL_KEY_RISING_EDGE 0
#define HAL_KEY_FALLING_EDGE 1
#define HAL_KEY_DEBOUNCE_VALUE 25
#define HAL_KEY_POLLING_VALUE 100
/* CPU port interrupt */
#define HAL_KEY_CPU_PORT_0_IF P0IF//WDS-- 端口0中断标志
#define HAL_KEY_CPU_PORT_2_IF P2IF//WDS-- 端口2中断标志
/* SW_6 is at P0.1 */
#define HAL_KEY_SW_6_PORT P0 //WDS-- 端口P0
#define HAL_KEY_SW_6_BIT BV(1)//按WDS-- 键所在IO口为P0_1
#define HAL_KEY_SW_6_SEL P0SEL//WDS-- 普通IO
#define HAL_KEY_SW_6_DIR P0DIR//WDS-- 方向输入
/* edge interrupt */
#define HAL_KEY_SW_6_EDGEBIT BV(0)
#define HAL_KEY_SW_6_EDGE HAL_KEY_FALLING_EDGE//WDS-- 中断边沿触发 PICTL寄存器
/* 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 */
/* Joy stick move at P2.0 */
#define HAL_KEY_JOY_MOVE_PORT P2 //WDS-- 端口P0
#define HAL_KEY_JOY_MOVE_BIT BV(0)//WDS-- 按键所在IO口为P2_o
#define HAL_KEY_JOY_MOVE_SEL P2SEL//WDS-- 普通IO
#define HAL_KEY_JOY_MOVE_DIR P2DIR//WDS-- 方向输入
/* edge interrupt */
#define HAL_KEY_JOY_MOVE_EDGEBIT BV(3)
#define HAL_KEY_JOY_MOVE_EDGE HAL_KEY_FALLING_EDGE
/* Joy move interrupts */
#define HAL_KEY_JOY_MOVE_IEN IEN2 /* CPU interrupt mask register */
#define HAL_KEY_JOY_MOVE_IENBIT BV(1) /* Mask bit for all of Port_2 */
#define HAL_KEY_JOY_MOVE_ICTL P2IEN /* Port Interrupt Control register */
#define HAL_KEY_JOY_MOVE_ICTLBIT BV(0) /* P2IENL - P2.0<->P2.3 enable/disable bit */
#define HAL_KEY_JOY_MOVE_PXIFG P2IFG /* Interrupt flag at source */
//WDS-- ADD --BUTTON
//P0.4
#define HAL_KEY1_PORT P0 //WDS-- 端口P0
#define HAL_KEY1_BIT BV(4)//按WDS-- 键所在IO口为P0_4
#define HAL_KEY1_SEL P0SEL//WDS-- 普通IO
#define HAL_KEY1_DIR P0DIR//WDS-- 方向输入
/* edge interrupt */
#define HAL_KEY1_EDGEBIT BV(0)//WDS-- 什么意思 ???
#define HAL_KEY1_EDGE HAL_KEY_FALLING_EDGE//WDS-- 中断边沿触发 PICTL寄存器
/* SW_6 interrupts */
#define HAL_KEY1_IEN IEN1 /* CPU interrupt mask register */
#define HAL_KEY1_IENBIT BV(5) /* Mask bit for all of Port_0 *///WDS-- 什么意思 ???
#define HAL_KEY1_ICTL P0IEN /* Port Interrupt Control register */
#define HAL_KEY1_ICTLBIT BV(4) /* P0IEN - P0.4 enable/disable bit */
#define HAL_KEY1_PXIFG P0IFG /* Interrupt flag at source */
5、在hal_key.c中增加以下代码,如WDS-- ADD 是我增加的,可把原有的屏蔽了
if(HAL_PUSH_BUTTON5())//WDS--
{
keys |= HAL_KEY3;
}
6、在OnBard.c将
{
if ( level == OB_COLD )
{
// IAR does not zero-out this byte below the XSTACK.
*(uint8 *)0x0 = 0;
// Interrupts off
osal_int_disable( INTS_ALL );
// Check for Brown-Out reset
ChkReset();
}
else // !OB_COLD
{
/* Initialize Key stuff */
HalKeyConfig(HAL_KEY_INTERRUPT_DISABLE, OnBoard_KeyCallback);//修改此处
}
}
- zigbee 协议栈 按键驱动
- zigbee协议栈之按键处理流程
- Zigbee协议栈内核分析 - 按键分析
- 协议栈按键驱动修改
- Zigbee协议按键触发流程
- 从Zigbee协议栈底层添加自己的按键配置
- ZigBee组网学习笔记(四)--协议栈按键实验
- CC2530按键流程分析相当于zigbee协议栈分析
- ZIGBEE协议栈从底层添加一个自己的按键
- zigbee按键
- zigbee协议栈
- zigbee协议栈简介
- Zigbee 协议栈
- zigbee协议栈简介
- ZigBee协议栈看门狗
- 【原创】zstack - 协议栈程序精简日志-按键驱动移植
- ZigBee TI ZStack CC2530 3.15 按键驱动02-中断模式
- ZigBee协议栈说明(1)
- STM32F4学习
- 获取某目录下的所有文件(包括子目录下文件)的数量(C#)
- Quake4裁剪关卡
- 2017.05.10回顾 numpy学习 其他python woe iv实现参考
- Android-解析xml:pull
- zigbee 协议栈 按键驱动
- 深度学习目标检测:RCNN,Fast,Faster,YOLO,SSD比较
- php实现对pdf的强制下载
- 转载 VB.NET delegate委托 Invoke
- linux常见系统调用函数列表
- 12个非常有用的JavaScript技巧
- android.intent.category.LAUNCHER 的作用
- jpa@version不起作用(更新时不自增)
- <模型汇总-6>堆叠自动编码器Stacked_AutoEncoder-SAE