如何在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里可以发送你的数据。

OSAL通过一个16位宽度的数组来管理事件,意味着OSAL最多可以支持16个事件,其中最高位(0x08000,SYS_EVENT_MSG)系统保留,用户可以使用的事件有15个。

事件的使用很简单:

1)需要找个地方定义事件的ID,实际上是指定该事件占用事件数组的哪个位。如#define MY_EVENT 0x02,占用bit1。

2)在需要触发事件的地方调用osal_set_event( ) ,这个函数有两个参数,一个是接收事件任务的ID,另一个参数指定事件ID。

3)在相应任务的处理函数,检查该事件执行相应代码即可。

4)清除事件标识。(不知道能否自动清除事件标识,还有待研究代码)


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

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

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

发表评论

登录后才能评论

评论列表(0条)

    保存