zigbee按键IO口的修改
来源:互联网 发布:买大班模型 淘宝店 编辑:程序博客网 时间:2024/04/29 08:17
ZigBee地板上的按键有两种方式检测触发:一种是轮询扫描,另一种是中断的方式。
我们来看看怎么把轮询扫描改成中断的方式。
很简单下面的函数是打开或者关闭中断的,如果打开中断系统就不会启动定时器去扫描按键。
/* Interrupt option - Enable or disable */
#define HAL_KEY_INTERRUPT_DISABLE 0x00
#define HAL_KEY_INTERRUPT_ENABLE 0x01
/* Initialize Key stuff *///HAL_KEY_INTERRUPT_DISABLE非中断检测,与按键有关
HalKeyConfig(HAL_KEY_INTERRUPT_ENABLE, OnBoard_KeyCallback);
如果打开中断就不会执行下面的定时器去扫描按键
/* if interrupt disabled, do next polling */
if (!Hal_KeyIntEnable)//如果不是中断方式的话就定时启动此事件检测按键
{
osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);//定时器
}
按键引脚的修改
//检测按键S2是否按下
if(HAL_PUSH_BUTTON1())//这里需要改成低电平按下
{
keys|=HAL_KEY_SW_6;
// keys|=HAL_KEY_SW_7;
}
#define HAL_PUSH_BUTTON1() (PUSH1_POLARITY (PUSH1_SBIT))
#define HAL_PUSH_BUTTON2() (PUSH2_POLARITY (PUSH2_SBIT))
#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
#define ACTIVE_LOW !
#define ACTIVE_HIGH !! /* double negation forces result to be '1' */
最重要的就是下面这一句其他的都是浮云,修改一定要抓住最本质的内容。
/* S1 */
#define PUSH1_BV BV(1)
#define PUSH1_SBIT P0_1
- zigbee按键IO口的修改
- zigbee按键
- ZigBee中PANID的修改
- ZigBee中PANID的修改
- cc254x之修改协议栈按键io
- 经典的IO接按键
- ZigBee按键允许入网
- zigbee按键分析
- zigbee按键扫描
- 初学Zigbee–IO口配置
- ZigBee 用IO口模拟I2C驱动程序
- ZigBee 用IO口模拟SPI驱动程序
- ZigBee 用IO口模拟UART驱动程序
- zigbee 是怎样注册,产生,处理 按键事件的?
- 从Zigbee协议栈底层添加自己的按键配置
- ZIGBEE协议栈从底层添加一个自己的按键
- zigbee z-stack实现按键的长按
- 5个IO口扫描25个按键的解决方法
- Java对象和文件,字符串之间的相互转换方法
- ArrayList 、LinkedList和Vector比较
- Android网络编程---从服务器端获取JSON数据
- 1020. Tree Traversals (25)
- 统计一个字符串中某个字符第一次出现的位置和最后一次出现的位置
- zigbee按键IO口的修改
- 黑马程序员--C语言之复杂数据类型
- c++中容器元素都是副本
- 类模板与模板类的概念
- 09-04-2015 Array
- 让VC调试器正确显示UTF-8字符串
- Android中使用ListView实现漂亮的表格效果
- 链表反转
- 16进制颜色设定