Thread 中讨论的其他器件:CC2650、 BLE-STACK
工具/软件:TI-RTOS
您好!
我正在处理一个定制 BLE 项目。 因此、我修改了 TI 多角色项目。
我想测量器件是否进入待机模式。 我查看了示例 C:\ti_tirtos_cc13xx_cc26xx_2_20_01_08\examples\TI\CC2650_LAUNCHXL_pinStandby
为了让我理解、如果我在应用程序任务中调用 Task_sleepMS*(1000/Clock_tickPeriod)、RTOS 会将器件置于睡眠状态。
我已经运行示例 pinStandby 并在调用 Task_sleep 后测量1uA 的电流。 因此一切都正常、CC2650进入待机模式。
如果我现在在自定义应用程序中尝试相同的调用、则器件不会进入睡眠状态。
调用后、我测量150uA 的电流。
我认为与 pinStandby 示例的区别在于、在我的应用中、有几个任务正在运行。 (请参阅 main 中的任务初始化)
int main()
{
//注册应用程序回调到堆栈中发出的 TRAP 断言*/
RegisterAssertCback (AssertHandler);
PIN_Status 引脚状态;
PinState = PIN_init (initTable_pui32);
#if !defined (power_saving)
/*设置待机、断电和空闲模式的约束*/
// PowerCC26XX_SB_disallow 可能是冗余
Power_setConstraint (Power_setConstraint)(Power_setConstraint);
Power_setConstraint (Power_IDLE_IDLE_*
/ IDLE_Idle*);Power_Init
(Power_Idle*/iCall 任务#init/iCall */ IDLE_Idle*;Power_Idle_Idle*
/*退出配置文件-优先级3 */
GAPRole_createTask();
/*退出应用程序-优先级1 */
App_CreateTask_V();
//启用中断并启动 SYS/BIOS */
BIOS_start();
返回0;
}
我只在应用程序任务中调用 Task_sleep 函数(这也是我从多角色示例中重命名和修改的唯一任务)。 我还会在调用 Task_sleep 函数之前断开所有连接。 是否需要任何其他命令才能进入睡眠模式?
power_saving 定义为预定义符号