zigbee按键处理:中断VS查询法解析
需积分: 10 45 浏览量
更新于2024-09-16
收藏 19KB DOCX 举报
"zigbee按键流程之代码跟踪——基于TI的ZSTACK 2007 pro"
在Zigbee通信技术中,处理按键输入是系统交互的重要部分。本资源主要探讨了基于TI ZSTACK 2007 pro的Zigbee设备如何处理按键事件,涉及两种常见方法:中断法和查询法。
中断法:
1. 当按键被按下时,硬件会产生中断,此时会进入对应的按键中断服务程序。
2. 在中断服务程序内部,会调用`osal_start_timerEx()`函数来设置一个定时器,这个定时器触发按键处理程序`Hal_ProcessEvent()`。
3. `Hal_ProcessEvent()`函数负责处理按键事件,读取按键状态并将其传递到应用层。
4. 如果没有按键按下,`Hal_ProcessEvent()`不会被调用,因此不存在持续循环。
查询法:
1. 使用`HalKeyConfig()`函数配置按键,该函数会调用`osal_start_timerEx()`启动定时器。
2. 定时器到期后,`Hal_ProcessEvent()`会被执行,检查按键状态。
3. 如果采用查询法,`Hal_ProcessEvent()`内部会再次调用`osal_start_timerEx()`,形成1毫秒的循环,不断检查按键状态。
4. 这种方法会在每个循环中调用`osal_start_timerEx()`两次,确保按键状态的持续轮询。
共同点:
1. 两种方法都依赖于`osal_start_timerEx()`来设置事件处理,区别在于调用时机和次数。
2. 无论是中断还是查询,都需要设置事件标志,以便操作系统检测到按键事件并调用HAL层的事件处理函数。
具体实现细节:
在Zigbee系统的初始化阶段,`InitBoard()`函数被调用,根据不同的启动级别进行相应的配置。例如,关闭所有中断、熄灭所有LED、进行复位检查等。对于按键处理,它可能涉及到初始化中断服务和设置相关的硬件接口。
Zigbee设备通过中断或查询方式处理按键输入,核心是通过`osal_start_timerEx()`和`Hal_ProcessEvent()`这两个关键函数来实现事件驱动的机制。选择哪种方法取决于应用场景的需求,如实时性、功耗等考虑。中断法适用于对响应时间要求较高的场景,而查询法则更适合低功耗且对实时性要求不那么高的情况。
2021-10-01 上传
456 浏览量
2009-12-05 上传
点击了解资源详情
点击了解资源详情
2024-11-15 上传
2024-11-15 上传
astudo
- 粉丝: 0
- 资源: 3
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常