zigbee协议栈的系统相关函数的使用 仿照协议栈写事件

文章目录

      • 1.osal_set_event函数的使用
      • 2.osal_start_timerEx函数,数码管变成c,两秒钟以后,灯点亮。
      • 3.我们能不能自己添加一个事件而不用GENERICAPP_SEND_MSG_EVT事件。

主要就是通过这个实验知道了:

  1. 怎么在初始化时候干一些事情
  2. 那些函数的参数是和什么有关的
  3. 怎么仿照协议栈自己写一个事件

1.osal_set_event函数的使用

修改事物,点亮p0_1
在这里插入图片描述

修改代码GenericApp.c的如下代码:

  if ( events & GENERICAPP_SEND_MSG_EVT ){// Send "the" messageGenericApp_SendTheMessage();// Setup to send message againosal_start_timerEx( GenericApp_TaskID,GENERICAPP_SEND_MSG_EVT,GENERICAPP_SEND_MSG_TIMEOUT );// return unprocessed eventsreturn (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起冲突的那部分

#endifLS164_Cfg();LS164_BYTE(10);

此时灯点亮了。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/560315.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

老年人自学计算机,老年人怎样学电脑?请问从网上能找到学习资吗?

首先学一些基础的知识,这样入门之后其他的就好说了!推荐一些基础性的知识:计算机基础可以分为硬件和软件硬件:主板、CPU、硬盘、内存、显卡、机箱电源、鼠标键盘、光驱、音响等软件:WINDOWS系统、OFFICE等一般基本工具…

zigbee上位机通过vs2019的mfc实现

文章目录一、操作系统和输入输出设备的联系二、应用程序和操作系统的联系三、zigbee上位机具体实现结果:四、实现上位机的具体流程:五、通过windows API实现串口通信的原理:一、操作系统和输入输出设备的联系 操作系统能操纵输出设备执行特定…

网上读书关于软件测试,【读书笔记】之软件测试

1.引论1.1 什么是软件测试软件测试主要是对制作的软件产品进行检查和测试,及时地发现程序中的故障和逻辑错误,以保障软件产品的可靠性。软件测试是保证软件质量的关键步骤,也是提高软件可靠性的重要手段,因此它是软件工程的的重要…

matlab guide 自定义右键菜单

在一个gui图形显示界面上点击右键,出现一些选项可以进行操作。 实验效果: 找到菜单编辑器的上下文菜单: 我们看几个回调函数即可: function clear_Callback(hObject, eventdata, handles) cla; function gridoff_Callback(hObj…

计算机活动感悟怎么写,计算机教学心得体会范文五篇.doc

计算机教学心得体会范文五篇计算机教学心得体会范文五篇【一】一、开卷有益,爱不释手然而,在我参加了第一次培训,我就发现自己错了,此次的电脑培训与以前参加过的培训大相径庭。以前的培训都是应付考试的,实用性不强&a…

Java一些基础知识的整合

文章目录1. 数据类型、变量与常量1.1基本数据类型(primitive types)1.1.1 boolean1.1.2字符型1.1.2.1 转 义 字 符 含 义1.1.3整数类型1.1.4 浮点类型1.2引用类型( reference types )1.3 基本数据类型和引用类型区别1.4 标识符( Identifier&a…

空军部队计算机专业有没有用武之地,报名当兵可以选择陆军、海军、空军、武警、火箭军,艰苦地区部队...

如果是本科生,在部队表现优异,年龄不超26周岁是可以被推荐去参加大学生士兵提干考试。考上之后需要到军校培训6个月左右,毕业后下部队就是中尉军衔。二、报名当兵时有陆军、海军、空军、武警、火箭军,艰苦地区部队,选择…

查看本地计算机ip命令,查看你本机的IP信息的命令ipconfig详解【图】

原标题:"查看你本机的IP信息的命令ipconfig详解【图】"关于路由器的知识分享。 - 素材来源网络 编辑:kaka。对于ipconfig命令大家应该不陌生,它主要用于显示本地计算机网络适配器的ip地址、子网掩码以及默认网关等信息。1、IPconfig不带参数不…

什么是传感器? 传感器由哪几部分组成? 传感器分类?

文章目录1.什么是传感器?2.传感器由哪几部分组成?3.传感器分类?1.什么是传感器? 传感器(英文名称:transducer/sensor)是一种检测装置,能感受到被测量的信息,并能将感受到…

计算机win7关机重启,电脑win7关机后自动重启如何解决_win7一关机就立马自动重启修复方法-win7之家...

我们在使用完win7系统电脑之后,都会顺手对其进行关机操作,以此防止电脑中的硬件过度消耗,可是近日有些用户在将win7电脑关机之后却又出现了重启的情况,最终不得不以切断电源的方式来解决,那么电脑win7关机后自动重启如…

RFID 射频 RFID工作流程 自动识别技术 工作频段 短距离无线通信技术

文章目录1.rfid概念:2.射频概念:3.rfid工作流程:4.几类自动识别技术各有什么特点?他们有何不同。5.RFID系统有哪些工作频段?各频段的特点是什么。6.对比几种短距离无线通信技术1.rfid概念: RFID是一种自动…

链表 队列 基本概念 为什么使用二叉查找树 抽象数据类型

文章目录0.抽象数据类型(ADT)的优点?1.为什么需要链表?2.链表的概念?3.队列的概念?4.为什么需要二叉查找树?0.抽象数据类型(ADT)的优点? ADT版本可读性高,隐藏编程细节,对终端用户隐…

黑盒测试还适用于测试软件,软件测试 黑盒测试中的决策表技术

决策表技术是用于黑盒测试的广泛使用的用例设计技术之一。这是一种系统方法,它以表格形式捕获各种输入组合及其各自的系统行为。它也称为因果表。该技术用于系统地选择测试用例; 它节省了测试时间,并为软件应用程序的测试区域提供了良好的覆盖。决策表技…

统计一行文本的单词个数

统计一行文本的单词个数 习题6-8 统计一行文本的单词个数 (15 分) 本题目要求编写程序统计一行字符中单词的个数。所谓“单词”是指连续不含空格的字符串,各单词之间用空格分隔,空格数可以是多个。 输入格式: 输入给出一行字符。 输出格式: 在一行中输…

戴尔计算机windows未能启动,戴尔电脑windows7无法启动安装过程怎么办

windows7无法启动安装过程怎么办?暗黄win7系统的时候经常遇见这种问题可能是硬件问题导致的,还有可能是系统设置问题导致的,我们具体原因具体分析,一起来看看解决方法,动手实践起来吧!1、方法一&#xff1a…

c语言 数据结构 list、queue、tree抽象数据类型的定义与实现 详尽代码和注释

本文使用c语言定义并实现list、queue、tree抽象数据类型,代码有详尽注释,可以通过代码熟悉原理并运用数据结构。 0.ADT基础知识 类型包括两类信息,属性和操作。在编程时,根据编程问题匹配合适的数据类型。 定义一个新的数据类型…

局域网服务器没显示,无法登录服务器 局域网也不显示连接

什么情况啊 论坛上很多这种情况 客服快来远程帮我解决一下!!!!********************************************************************************[星际争霸重置版]客户端到服务器Ping测试:服务器,223.25…

css 回到首页按钮,js+css实现回到顶部按钮(back to top)

本文实例介绍了jscss实现回到顶部按钮的方法,分享给大家供大家参考,具体内容如下效果htmlcssp#back-to-top{position:fixed;bottom:100px;right:80px;}p#back-to-top a{text-align:center;text-decoration:none;color:#d1d1d1;display:block;width:30px;…

Java Set基础知识

Set集合中不包含重复对象。 HashSet: HashSet的底层用哈希散列表来存储对象。其中的散列码是由关键字的信息内容确定的。关键字到散列码的转换是自动执行的。 存储元素时底层要做的判断:1.调用元素的hashCode()方法,直接访问对应的数组元素,有没有这个哈希值,没有就…

c语言基础练习题 字符串输入scanf/gets 字符串赋值、比大小

PTA上C语言程序设计练习题,包含查找书籍、字符串排序。主要用到字符串输入scanf/gets 字符串赋值、比大小等知识。 1.查找书籍 习题9-4 查找书籍 (20 分) 给定n本书的名称和定价,本题要求编写程序,查找并输出其中定价最高和最低的书的名称和…