ZStack协议按键处理流程分析
在分析之前我先说一下ZStack协议栈有很多版本,版本不一样,代码多少有一些不一样,我的ZStack是ZStack-CC2530-。另外我的这篇文章中有很多内容是参考网友的文章,不知道有没有侵犯版权。
ZStack 在分析之前我先说一下协议栈有很多版本,版本不一样,代码多少有一 ZStackZStack-CC2530- 些不一样,我的是。另外我的这篇文章中有很多内容是 参考网友的文章,不知道有没有侵犯版权。 ZStack 我自己总结一下按键处理流程,在协议栈中,按键的处理有两种方式, 一种是中断方式,另一种是轮询方式,在这里,我以中断的方式来处理按键。我 P0_1, 的按键接在如图所示: P0_1 从图中可以看出,当按键没有按下的时候引脚为高电平,当按键按下时, 引脚变成低电平,在这里,我的按键的中断触发方式为下降沿有效。为了让按键 LED 按下后,程序能做点事情,我以灯为例,也就是说,当按键按下后,我让 LEDLEDLED 的状态翻转,也就是说按键按下一次,灯亮,在按下一次,灯灭, LED……LED 在按一下一次,灯亮。下图是的引脚图: ZStackP0_1P1_0LED 纵观总的协议栈,我们发现和接的正好是按键和灯,因 LED 此在协议栈中,关于的按键和灯的代码我们不需要修改的太多。 __in 我从函数开始一步一步的分析,为了减小篇幅和代码量,我只分析与按 键和中断有关的代码。 Int__in() { //Turnoffinterrupts 关闭中断 osal_int_disable(INTS_ALL);//EA0,EA 就是设置为为各种中断的总开关 //InitializationforboardrelatedstuffsuchasLEDs //LED 初始化系统时钟,等 HAL_BOARD_INIT();//___ 这个里面动 // 电压检测,最好是能保证芯片能正常工作的电压 //__kesuresupplyvoltageishighenoughtorun z__in_vdd_check(); //InitializeboardI/OIO 初始化板载 InitBoard(OB_COLD); //InitialzeHALdriversHAL 初始化驱动 HalDriverInit();

