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

CC2650里,用Util_startClock生成的SWI clock中,可以做一些不太耗时的操作吗?有没有具体指标?

在开发指南中,介绍了生成和使用SWI Clock的方法。示例代码包括所有的DEMO都只是在clock中设定了一个event便退出了,如下:

//clock handler function
static void SimpleBLEPeripheral_clockHandler(UArg arg)
{ 
	// Store the event.
	events |= arg; 

	// Wake up the application. 
	Semaphore_post(sem);
}

对event的具体操作是在swi之外了。手册中写明了必须要严格控制swi的运行时间,需要尽量缩短,但并没有说明哪些操作是禁止的。我试过在clockHandler中进行一些GPIO的读写操作,做一些简单的运算,没有出现什么问题。但是我在里面加入一些spi读写操作或者执行GAPCentralRole_TerminateLink这类操作,偶尔就会出问题。

我的问题:

1. 我现在需要在clockHandler调用后计算一些参数,然后根据计算结果对某些GPIO进行写操作,算是很简单的流程。我想问一下,这种情况下,到底有没有必要单独做一个event?还是可以安全地在clock回调函数中进行这些操作?

2. 类似的问题,在按键回调中断这种HWI里面,是否可以做一些简单的操作比如debounce,会影响系统稳定吗?

谢谢!

kqian0327:

你好,

1.你可以自己建一个event来做,不建议直接早clock的回调函数中处理,程序显得没有逻辑。

2.不会。

详细关于clockd的设置,你可以参考develop guide。

希望对你有帮助。

赞(0)
未经允许不得转载:TI中文支持网 » CC2650里,用Util_startClock生成的SWI clock中,可以做一些不太耗时的操作吗?有没有具体指标?
分享到: 更多 (0)