如何在cc2650stk里添加自己的任务事件,开发软件用的是IAR,比如简单的向

如何在cc2650stk里添加自己的任务事件,开发软件用的是IAR,比如简单的向,第1张

在中断里面作大量的处理确实不是明智的选择,假设你用的是GenericApp:

定义一个发送事件,它的值要和已有的事件不重复,比如#define SEND_EVT 0x0004

在中断里面osal_set_event(GenericApp_TaskID,SEND_EVT)

在GenericApp的任务处理回调函数GenericApp_ProcessEvent里,加上if(events SEND_EVT)</ol> {//TODO:Send your data here

return(events ^ SEND_EVT)

}当然,你也可以把中断做成一个按键的形式,这样在按键回调函数GenericApp_HandleKeys里可以发送你的数据。

我想你要找的是byte osal_start_timerEx( byte taskID, UINT16 event_id, UINT16 timeout_value )函数,这个函数可以在timeout_value毫秒后执行taskID任务的event_id事件,Z-STACK的OS并不是可剥夺的,而是事件驱动的

1、任务调度:osal采用一个链表结构来管理协议栈各层相应任务。相关 *** 作函数有,添加任务到链表中;获取下一个活动任务;根据taskID查找下一个任务。osal采用轮询任务调度队列(任务链表),通过两个函数:调度程序主循环函数和设置事件发生标志函数。

2、时间管理:通过为事件设置超时等待时间,一旦等待时间结束,便为对应任务设置事件发生标志,从而达到对事件进行延时处理目的。

3、原语通信:请求响应原语 *** 作:一旦调用了下层相关函数后,就立即返回。下层处理函数在 *** 作结束后,将结果以消息的形式发送到上层并产生一个系统事件,调度程序发现这个事件后就会调用相应的事件处理函数对它进行处理。两个相关函数:向目标任务发送消息的函数;消息提取函数。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11703072.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存