zigbee学习:示例程序SampleApp中按键工作流程
来源:互联网 发布:单片机驱动发光二极管 编辑:程序博客网 时间:2024/06/05 15:47
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()
此函数中判断是否按键事件,如果是则处理:
首先轮询按键,然后启动定时器,100ms后再度轮询
7.轮询函数中调用halGetJoyKeyInput()函数,此函数调用读取ADC函数adc = HalAdcRead (HAL_KEY_JOY_CHN, HAL_ADC_RESOLUTION_8),然后根据ADC判断按键
- zigbee学习:示例程序SampleApp中按键工作流程
- zigbee学习:示例程序SampleApp中按键工作流程
- zigbee学习:示例程序SampleApp中通讯流程
- Zigbee协议按键触发流程
- zigbee协议栈之按键处理流程
- SAMPLEAPP 程序主要说明
- Zigbee组网流程程序分析
- ucgui按键工作的流程
- zigbee按键
- CC2530按键流程分析相当于zigbee协议栈分析
- ZigBee组网学习笔记(四)--协议栈按键实验
- ZIGBEE:协议栈工作流程简要分析与学习方法记录
- ZigBee按键允许入网
- zigbee按键分析
- zigbee按键扫描
- springSecurity工作流程学习
- zigbee cc2530环境搭建及程序开发大概流程
- linux中event按键程序
- Java servlet 之过滤器Filter详解
- 无法启动此程序,因为计算机中丢失chrome_elf.dll。尝试重新安装该程序以解决此问题
- Android Spinner、PopupWindow和Dialog的关系
- Eclipse,JDK,ADT以及Tomcat配置(包括关联源码)
- 有关树的知识点
- zigbee学习:示例程序SampleApp中按键工作流程
- java语法基础
- MySQL中information_schema 是什么
- Mongodb replication复制集的配置
- 范数和距离
- RecyclerView 点击事件
- leetcode-20. Valid Parentheses
- The Largest Generation
- php array_multisort 二维数组排序