zigbee学习:示例程序SampleApp中按键工作流程
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.
环境:
主机:WIN7
开发环境:IAR8.10.3
MCU:CC2530
示例程序:SampleApp
按键电路:
电路原理为利用ADC采集JOY_LEVEL脚电压,根据电压判断按键.
不同按键的电压值:
UP:0.1VCC
DN:0.38VCC
LT:0.54VCC
RT:0.60VCC
PUSH:0.7VCC
程序中利用8位分辨率,第一位为符号位,即7位分辨率分辨
程序中AD值表电压值
UP:2-380.02VCC-0.30VCC
DN:39-590.30VCC-0.46VCC
LT:60-730.47VCC-0.57VCC
RT:74-880.58VCC-0.69VCC
PUSH:89-1000.70VCC-0.78VCC
可见,程序检测与按键是能够匹配.
代码结构:
程序中按键检测机制为轮询机制,周期为100ms.
工作步骤:
1.main()函数中调用InitBoard()函数
2.此函数调用函数HalKeyConfig(HAL_KEY_INTERRUPT_DISABLE, OnBoard_KeyCallback)
3.此函数配置按键服务,如果是轮询机制,则调用函数osal_set_event(Hal_TaskID, HAL_KEY_EVENT),此函数启动按键事件,任务为Hal_TaskID
4.main()函数中调用硬件驱动初始化函数HalDriverInit()
5.此函数调用按键初始化函数HalKeyInit(),完成按键初始化
6.因为步骤3启动按键事件,所以进入Hal_TaskID处理函数Hal_ProcessEvent()
此函数中判断是否按键事件,如果是则处理:
HalKeyPoll();
/* if interrupt disabled, do next polling */
if (!Hal_KeyIntEnable)
{
osal_start_timerEx( Hal_TaskID, HAL_KEY_EVENT, 100);
}
首先轮询按键,然后启动定时器,100ms后再度轮询
7.轮询函数中调用halGetJoyKeyInput()函数,此函数调用读取ADC函数adc = HalAdcRead (HAL_KEY_JOY_CHN, HAL_ADC_RESOLUTION_8),然后根据ADC判断按键
分享到:
相关推荐
zigbee实验程序CC2430,按键实验。基于IAR开发的CC2430按键,四方向键实现程序
zigbee组网流程:协调器的组网,终端设备和路由设备发现网络以及加入网络
zigbee z-stack sampleApp 分析,原创,今年6月份为学校的写的分析文档之一
zigbee学习文档zigbee学习文档zigbee学习文档zigbee学习文档
协调器、终端上电,组网成功后 D1 灯闪烁
ZIGBEE协议栈(程序) ZIGBEE协议栈(程序) ZIGBEE协议栈(程序) ZIGBEE协议栈(程序) ZIGBEE协议栈(程序)
安卓app通过串口控制zigbee的简单示例,里面有文档和代码。
Zigbee:honeybee:到MQTT桥:bridge_at_night:,摆脱你专属的Zigbee桥:hammer:,允许您在没有供应商桥接或网关的情况下使用Zigbee设备。 Zigbee2mqtt :bridge_at_night: :honeybee: 允许您在没有供应商网桥或网关的...
zigbee按键的流程代码跟踪,基于TI的ZSTACK 2007 pro
ZigBee2006协议栈+示例程序+使用说明
zigbee物联网开发,用于智能家居改造,zigbee的组网流程能让你顺利的了解组网的脉络
适用于基于zigbee协议的应用中关于休眠的一段示范代码
zigbee onoff开关示例代码zigbee 开光
在简单介绍ZigBee技术的基础上,论述了在Java程序中利用javax.comm开发包中的类实现微机的RS-232串口与ZigBee模块通信的方法。
该演示程序实现温度的采集与显示功能,内部温度传感器定时采样,并将采集到的温度信息广播发送出去,另外的节点接收到温度信息后通过串口向计算机上报,串口通信波特率为57600
zigbee的源程序,包括定位程序,对于学习zigbee很有帮助
ZIGBEE WSN定位资料程序希望对研究wsn的朋友有帮助!
用于ZigBee的星型网状程序,实现无需按键就可实现绑定,数据传送
学习zigbee过程中遇到的问题及其解决方法和收集的资料
为<Zigbee入门指导>的上位机程序,无源码。