产品使用CC2640R2F,需要300nS和900nS的延时,如图。要求蓝牙链接不能断开,请问有什么方法?延时函数?

da qin zheng sheng:
用nop指令试试
YiKai Chen:
基本上ti-rtos好像沒辦法作到這麼小的延时
Viki Shi:
TI RTOS的延时分两种CPUdelay Task_sleep(),CPUdelay使用delay loop来实现延时,其延时单位为指令周期。
//*****************************************************************************
//
//! \brief Provide a small delay.
//!
//! This function provides means for generating a constant length delay. It
//! is written in assembly to keep the delay consistent across tool chains,
//! avoiding the need to tune the delay based on the tool chain in use.
//!
//! The loop takes 3 cycles/loop.
//!
//! \param ui32Count is the number of delay loop iterations to perform.
//!
//! \return None
//
//*****************************************************************************
extern void CPUdelay(uint32_t ui32Count);Task_sleep是让出对MCU的占用,可以让其他task得到执行或者执行idle task从而进入低功耗状态。它的计时单位是systick,默认为10us。
具体可以看下SDK中的Clock.html文档
Tristan Tsai:
回复 Viki Shi:
你好,非常感谢,CPUdelay会占用CPU,使用时会占用约25mS的时间,这个会影响蓝牙的保持链接吗?
Tristan Tsai:
回复 Viki Shi:
另外,我看到这个函数的注释,不同的code运行方式有不同的值,我是用的时simple_peripheral例程,请问圆圈里面的是哪一个值?谢谢
Tristan Tsai:
回复 Viki Shi:
不好意思,计算有些出入,CPU占用的时间可能会更长,达到120mS级别
user3948615:
回复 Tristan Tsai:
我建议你用spi去做驱动这个led
TI中文支持网



