Z-Stack中OSAL按键事件的触发流程分析

Z-Stack中OSAL按键事件的触发流程分析

ID:42160510

大小:92.00 KB

页数:7页

时间:2019-09-09

Z-Stack中OSAL按键事件的触发流程分析_第1页
Z-Stack中OSAL按键事件的触发流程分析_第2页
Z-Stack中OSAL按键事件的触发流程分析_第3页
Z-Stack中OSAL按键事件的触发流程分析_第4页
Z-Stack中OSAL按键事件的触发流程分析_第5页
资源描述:

《Z-Stack中OSAL按键事件的触发流程分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、z-Stack中OSAL按键事件的触发流程分析(2010-11-3010:53)分类:ZigBee技术学习首先在Main函数中,因为这是整个系统的入口点。(1)Main函数所有程序运行首先是在主函数下开始的,这里也不例外。找到Zmain.c文件下的主函数:ZSEGintmain(void){//初始化时要关屮断osal_int_disable(INTS_ALL);//也压務测程序zmain_vdd_check();//初始化堆栈zmain_rani_init();//第一次初始化平台*****注释

2、1*******InitBoard(OBCOLD);//硬件驱动初始化******注释2******HalDriverTnit();//系统初始化*******注释3*******osal_init_system();//第二次初始化平台*******注释4*******TnitBoard(0B_READY);■osal_start_system();//操作系统开始运行}说明:(1)注释1:该函数在onboard,c中,原型如下voidInitBoard(bytelevel){if(level=

3、=OB_COLD){这里执行第一次初始化的内容}else}(2)注释2:这个函数在haldrivers.c中voidHalDriverTnit(void)#if(definedHAL_KEY)&&(HAL_KEY==TRUE)HalKeylnit();#endif}HalKeyTnitO这个函数在hal_key.c中voidIlalKeylnit(void){#if(HAL_KEY==TRUE)/*Initializepreviouskeyto0*/halKeySavedKeys二0;#ifdef

4、ined(HAL_KEY_SW_5_ENABLE)HAL_KEY_SW_5_SEL&二~(HAL_KEY_SW_5_BIT);/*pOSEL的第5位置0,把P0.5作为普通10M*/HAL_KEY_SW_5_DIR&二~(HAL_KEY_SW_5_BIT);/*pODTR的第5位置0,把P0.5作为输入口*/HAL_KEY_SW_5_1NP

5、=HAL_KEY_SW_5_B1T;ASetpininputmodeto三态*/Sendif/*回调函数的初始化,赋值为NULL*/pHalKeyProces

6、sFunction二NULL;/*按键还未经配置,赋值为FALSE*/HalKeyConfigured=FALSE;#endif/*HAL_KEY*/}总结:这个函数基本完成了相应管脚的基本配置管脚的输入输出等等,给一些变量赋初值。其中回调函数的定义是这样的statichalKeyCBacktpHalKeyProcessFunction;那halKeyCBackt是这样定义的typedefvoid(^halKeyCBackt)(uint8keys,uint8state);也就是说它是一个函数的指针

7、。(1)注释4:该函数在onboard,c中,原型如下voidInitBoard(bytelevel){if(level二二0B_C0LD){〃这里执行第一次初始化的内容}else//以下执行第二次初始化的内容OnboardKeylntEnable=HAL_KEY_1NTERRUPT_D1SABLE;HalKeyConfig(OnboardKeylntEnable,OnBoardKeyCallback);}"}这里执行else后面的内容,这里调用了HalKeyConfig()函数,这个函数是按键的

8、一些配置,voidHalKeyConfig(boolinterruptEnable,halKeyCBacktcback)#if(I1AL_KEY二二TRUE)/*Enable/DisableInterruptor*/HalKeylntEnable=interruptEnable;/*Registerthecallbackfucntion*/pHalKeyProcessFunction二cback;//这里给冋调函数赋值/*Determineifintcrruptiscnableornot*/if(

9、Hal_KeyIntEnable)#ifdefined(HAL_KEY_SW_5_ENABLE)PICTL&二~(HAL_KEY_SW_5_EDGEBIT);/*Setrisingorfallingedge*/#if(HAL_KEY_SW_5_EDGE==HAL_KEY_FALLING_EDGE)PICTL

10、=HAL_KEY_SW_5_EDGEBIT;WendifHAL_KEY_SW_5_TCTL

11、=HAL_KEY_SW_5_TCTLBTT;/*Setinterruptenable

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。