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

CC1310: CC1310 Mutex例程用Semaphore功耗增加了3.15mA

Part Number:CC1310

参考例程 mutex.c (ti.com)

发现功耗加大了3.15mA,请问是不是开启Semaphore就会有这么大的功耗呢?有没有其他方案,使得两个task运行在低功耗模式下?

主要代码截图图下:

static void app_task1_cb(void)
{
      while(1)
      {  
            task1();
            Semaphore_post(semHandle);
      }
}

static void app_task2_cb(void)
{
       while(1)
      {
           task2();
           Semaphore_pend(semHandle, BIOS_WAIT_FOREVER);
           Task_sleep(sleepTickCount);
       }
}

Kevin Qiu1:

低功耗主要是在没有数据处理时进入standby模式,如果一直有任务在运行,那MCU就不会进入standby模式

上面两个任务如果一直是切换运行,MCU一直在处理的话,功耗高则是正常的

,

crepse:

之所以用两个任务是想在低功耗模式下,还能检测按键中断。原来的帖子链接:CC1310: CC1310的rfWakeOnRadioRx例程中如何把RF_runCmd引起的阻塞方式修改为非阻塞方式 – 低于 1GHz 论坛 – 低于 1GHz – E2ETm 设计支持 (ti.com)

原来使用一个任务时,带来的问题是在RF阻塞休眠500ms期间(使用500ms的周期),按键中断没响应,需要按键长按超过500ms才能响应。请教有没有好的方法?

,

Kevin Qiu1:

将任务1和任务2的具体代码传上来看一下,在在RF任务休眠的500ms期间,按键任务的功耗是3.15mA?

这样的话按键任务中应该不只是在等待中断,而是有其他功能使CPU无法进入休眠

,

crepse:

任务优先级最高的task1里跑的是按键检测的逻辑,task2里面跑的是500ms周期的rfWakeOnRadioRx阻塞。就是在500ms休眠期间还能检测到3.15mA的电流,相当于是两个task一直在切换。另外我如果把task2移到task1的任务下面,功耗能降下来(就是有500ms低功耗阻塞的效果,但是这时按键短按是检测不到的),想问在500ms阻塞期间,是不能触发按键中断的吗??

,

Kevin Qiu1:

根据之前帖子的回复,这应该是不行的

你可以参考例程pinShutdown中的方式在第一个任务中尝试使用中断的方式,其他时间 sleep,按键中断到来时处理

赞(0)
未经允许不得转载:TI中文支持网 » CC1310: CC1310 Mutex例程用Semaphore功耗增加了3.15mA
分享到: 更多 (0)