TI中文支持网
TI专业的中文技术问题搜集分享网站

如何正确地使用osal_set_event()

最近做蓝牙开发,在应用层自定义了一些事件,有时搞不清楚到底是该调用osal_set_event(),还是该直接调用相应的函数,问题举例如下:  

在应用层中,配置了P1_6引脚上的中断处理函数,当中断触发时,需要执行相应的操作,如下:

#pragma vector=P1INT_VECTOR
__interrupt void P1_IRQ(void)
{
	if(P1IFG&(1<<6))		//P1.6的中断
	{
	BATT_Check_Event();
	}
	P1IFG &= ~(1<<6);  		//清P1.6中断
	P1IF = 0;		//清中断标志位
}
同时,由于需要,定义了一个事件,应用层事件处理函数中的事件代码如下:
if ( events & SBP_BATTERY_CHECK_EVT )  
{
	BATT_Check_Event();
	return ( events ^ SBP_BATTERY_CHECK_EVT );
}

那么,在中断处理函数中,我是应该直接调用BATT_Check_Event(),还是使用osal_set_event(taskID,SBP_BATTERY_CHECK_EVT)?

求指点,谢谢!


cedar_xuesong:

基本原则:中断应该尽量少的执行代码

所以,在ISR中设置标志位或者事件标准,在APP层中处理这个事件,可以最大程度的提高系统响应性能

赞(0)
未经允许不得转载:TI中文支持网 » 如何正确地使用osal_set_event()
分享到: 更多 (0)