CC2650里,用Util_startClock生成的SWI clock中,可以做一些不太耗时的操作吗?有没有具体指标?
时间:10-02
整理:3721RD
点击:
在开发指南中,介绍了生成和使用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,会影响系统稳定吗?
谢谢!
你好,
1.你可以自己建一个event来做,不建议直接早clock的回调函数中处理,程序显得没有逻辑。
2.不会。
详细关于clockd的设置,你可以参考develop guide。
8473.SWRU393_CC2640_BLE_Software_Developer's_Guide.pdf
希望对你有帮助。
不太 Util_startClock clock SWI 相关文章:
- 新接手了一个离职同事的蓝牙项目,有些地方不太明白,请教大家
- cc2540读取的RSSI值不太稳定
- BLE协议栈中osal_setClock( ),osal_ConvertUTCTime()这些函数(日历功能)定时是使用32768还是32M的晶振作为基础的?
- CC2540-关于osal_getClock()和osal_setClock()函数相关问题
- CC2540 CC2541 thermometer例子中这些文件“timeapp_clock.c timeapp_config.c timeapp_discovery.c timeapp_ind.c”有什么用?
- CC2640 的软件定时器问题Util_constructClock