ZigBee添加用户任务

原文:https://blog.csdn.net/uyy203/article/details/50633465

工程文件: D:\TexasInstruments\ZStack-1.4.3-1.2.1\Projects\zstack\Samples\SampleApp\CC2430DB

这里讲如何添加一个简单的任务

1.任务名为yylong,在OSAL_SampleApp.c中修改代码

void osalInitTasks( void )
{
…………………
ZDApp_Init(taskID++ ); SampleApp_Init( taskID++ ); yylong_Init( taskID ); //添加任务初始化函数
}

2.添加任务的处理函数地址

const pTaskEventHandlerFn tasksArr[] = {

…………………
ZDApp_event_loop, SampleApp_ProcessEvent, yylong_Process //添加任务处理函数
};

函数的顺序必修与前一步中的是对应的,否则会张冠李戴

3.然后在SampleApp.c中定义上述两个函数

void yylong_Init(uint8 task_id )
{
 yylong_TaskID = task_id;//用yylong_TaskID全局变量记住自己的任务号,
  //如有需要再初始化一些自己的东西,
}
uint16 yylong_Process( uint8 task_id, uint16 events )
{
  P1_0=~P1_0;//led1翻转
 osal_start_timerEx (yylong_TaskID, 3, 250);//250ms后再次启动yylong_TaskID任务,即回到该函数
 return0;                              
}

4.然后在SampleApp.h中进行声明

extern void yylong_Init(uint8 task_id );
extern UINT16 yylong_Process( uint8 task_id, uint16 events );

5.我们用SW3启动该任务,启动后led1闪烁

void SampleApp_HandleKeys( uint8 shift, uint8 keys )
{
   if (keys & HAL_KEY_SW_1 )
  {
   …………………
   SampleApp_SendFlashMessage( SAMPLEAPP_FLASH_DURATION );
  }

if ( keys& HAL_KEY_SW_3 ) osal_start_timerEx (yylong_TaskID, 3, 250); //250ms后执行yylong_Process();
}

至此,一个任务添加完成

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 专业考题类型管理运行工作负责人一般作业考题内容选项A选项B选项C选项D选项E选项F正确答案 变电单选GYSZ本规程...
    小白兔去钓鱼阅读 9,051评论 0 13
  • 教程一:视频截图(Tutorial 01: Making Screencaps) 首先我们需要了解视频文件的一些基...
    90后的思维阅读 4,749评论 0 3
  • 一、Python简介和环境搭建以及pip的安装 4课时实验课主要内容 【Python简介】: Python 是一个...
    _小老虎_阅读 5,803评论 0 10
  • 小莎莎: 今天你特别安静的去打扫卫生。今天的陪伴自己的时候,你发现你是那么的好。也关照了前段时间的事情。让我...
    田田老师阅读 298评论 0 0
  • 想你是一种伤 就像子弹穿透胸膛 虽眼色迷茫 血在流淌 心脏却还在挣扎着最后一次顽强 那片云 飘的不忙不慌 它认为风...
    惠思考的牛阅读 247评论 0 7