08 基于Z-Stack的传感器中断添加实验.docVIP

08 基于Z-Stack的传感器中断添加实验.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Zstack的传感器中断添加实验 1.实验环境 硬件:UP-CUP IOT-6410-II 型嵌入式物联网综合实验系统,配套红外对射传感器,PC 机 软件:IAR Embedded Workbench for MCS-51 2.实验内容 学习TI ZStack2007协议栈内容,掌握CC2530模块无线组网原理及过程。掌握在ZStack协议栈的基础上设计中断处理函数的方法。 使用IAR开发环境设计程序,ZStack-2.3.0-1.4.0协议栈源码例程SampleApp工程基础上,实现无线组网及通讯。即协调器自动组网,终端节点自动入网。利用协议栈接口实现传感器中断处理函数。 3.实验原理 ??ZIGBEE(CC2530)模块LED硬件接口 图5.8.1 LED硬件接口 ZIGBEE(CC2530)模块硬件上设计有2个LED灯,用来编程调试使用。分别连接CC2530的P1_0、P、1_1两个IO引脚。从原理图上可以看出,2个LED灯共阳极,当P1_0、P1_1引脚为低电平时候,LED灯点亮。 本实验以红外对射传感器为例,讲解如何在ZStack协议栈中添加用户自己的中断处理函数。 红外对射传感器模块硬件接口 图5.8.2 红外对射模块硬件接口 图5.8.3 ZIGBEE 模块主板 SENSOR IO/INT 接口 系统配套的红外对射传感器,与ZIGBEE模块的IO/INT排针相连,这样我们可以知道,红外模块的信号线与ZIGBEE模块的P1_2 IO引脚相连。因此我们需要在代码中将该引脚配置成中断输入模式,来监测红外对射传感器状态。 ??MT层串口通讯 协议栈将串口通讯部分放到了MT层的MT任务中去处理了,因此我们在使用串口通讯的时候要在编译工程(通常是协调器工程)时候在编译选项中加入MT层相关任务的支持:MT_TASK,ZTOOL_P1 或ZAPP_P1。 ??关于传感器中断添加实验关键代码分析 HAL_ISR_FUNCTION(halP12isr,P1INT_VECTOR){ if(P1IFG 0x04) //中断 { gIntFlag = 0x01; HalUARTWrite ( 0, \rINT2\r, 6 ); osal_set_event(SampleApp_TaskID,SAMPLEAPP_SEND_SENSOR_INT_EVT); Delay(100); P1IFG = ~(0x04); } P1IF = 0; //清中断标志 } uint16 SampleApp_ProcessEvent( uint8 task_id, uint16 events ) { afIncomingMSGPacket_t *MSGpkt; (void)task_id; // Intentionally unreferenced parameter if ( events SYS_EVENT_MSG ) { MSGpkt = (afIncomingMSGPacket_t *)osal_msg_receive( SampleApp_TaskID ); while ( MSGpkt ) { switch ( MSGpkt-hdr.event ) { // Received when a key is pressed case KEY_CHANGE: SampleApp_HandleKeys( ((keyChange_t *)MSGpkt)-state, ((keyChange_t *)MSGpkt)-keys ); break; // Received when a messages is received (OTA) for this endpoint case AF_INCOMING_MSG_CMD: SampleApp_MessageMSGCB( MSGpkt ); break; // Received whenever the device changes state in the network case ZDO_

文档评论(0)

fengyu4835 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档