zigbee协议栈的系统相关函数的使用 仿照协议栈写事件
2022/1/28 23:07:27
本文主要是介绍zigbee协议栈的系统相关函数的使用 仿照协议栈写事件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文章目录
- 1.osal_set_event函数的使用
- 2.osal_start_timerEx函数,数码管变成c,两秒钟以后,灯点亮。
- 3.我们能不能自己添加一个事件而不用GENERICAPP_SEND_MSG_EVT事件。
主要就是通过这个实验知道了:
- 怎么在初始化时候干一些事情
- 那些函数的参数是和什么有关的
- 怎么仿照协议栈自己写一个事件
1.osal_set_event函数的使用
修改事物,点亮p0_1
修改代码GenericApp.c的如下代码:
if ( events & GENERICAPP_SEND_MSG_EVT ) { // Send "the" message GenericApp_SendTheMessage(); // Setup to send message again osal_start_timerEx( GenericApp_TaskID, GENERICAPP_SEND_MSG_EVT, GENERICAPP_SEND_MSG_TIMEOUT ); // return unprocessed events return (events ^ GENERICAPP_SEND_MSG_EVT); }
这里面的两个变量可以看:
设置断点,全速运行,然后运行至断点,显示:
按F9取消当前断点,可发现数码管显示C
此时再全速运行,可以发现程序跳到了这里
再按F9,然后全速运行,灯变亮了
然后复位,数码管变成c,灯立即点亮
2.osal_start_timerEx函数,数码管变成c,两秒钟以后,灯点亮。
把osal_set_event(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT);
改成osal_start_timerEx(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT,2000);
3.我们能不能自己添加一个事件而不用GENERICAPP_SEND_MSG_EVT事件。
找到定义#define GENERICAPP_SEND_MSG_EVT 0x0001
其中四位中的每一位只能是8421中的一个,然后其余所有位为0,也就是说十六位里面只有一位是1。
1.在GenericApp.h里面,添加我们的事件GENERICAPP_MY_EVT的定义
#define GENERICAPP_MY_EVT 0X0002
2.模仿着在GenericApp.c建一个语句
把
if ( events & GENERICAPP_SEND_MSG_EVT ) { return (events ^ GENERICAPP_SEND_MSG_EVT); }
变成:
if ( events & GENERICAPP_MY_EVT ) { return (events ^ GENERICAPP_MY_EVT); }
我们现在要实现一个任务,把p0_4点亮
改
if(GenericApp_NwkState == DEV_ZB_COORD) {//如果模块成了协调器,进到这 LS164_BYTE(11); //osal_set_event(GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT);//应用层GenericApp_TaskID任务处理GENERICAPP_SEND_MSG_EVT事物 osal_start_timerEx(GenericApp_TaskID,GENERICAPP_MY_EVT,3000); }
改:
if ( events & GENERICAPP_SEND_MSG_EVT ) { P0DIR |=0X10; P0_4=0; return (events ^ GENERICAPP_SEND_MSG_EVT); }
但是灯不亮,添加断点
发现在
P0DIR |=0X10;
P0_4=0;
出问题。
修改:初始化工作作全面
if ( events & GENERICAPP_SEND_MSG_EVT ) { P0SEL &=0XEF; P0DIR |=0X10; P0_4=0; return (events ^ GENERICAPP_SEND_MSG_EVT); }
在Zmain.c里面的endif里面添加,以达到覆盖的目的,覆盖和TI起冲突的那部分
#endif LS164_Cfg(); LS164_BYTE(10);
此时灯点亮了。
这篇关于zigbee协议栈的系统相关函数的使用 仿照协议栈写事件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-15JavaMailSender是什么,怎么使用?-icode9专业技术文章分享
- 2024-11-15JWT 用户校验学习:从入门到实践
- 2024-11-15Nest学习:新手入门全面指南
- 2024-11-15RestfulAPI学习:新手入门指南
- 2024-11-15Server Component学习:入门教程与实践指南
- 2024-11-15动态路由入门:新手必读指南
- 2024-11-15JWT 用户校验入门:轻松掌握JWT认证基础
- 2024-11-15Nest后端开发入门指南
- 2024-11-15Nest后端开发入门教程
- 2024-11-15RestfulAPI入门:新手快速上手指南