ucos 停机低功耗模式求助

2019-07-21 00:33发布

我在做一个低功耗的实验,遇到一些问题,请教一下各位大神。
我有如下两个任务
task 1
{
      while(1)
    {
            dosomething();
           delay(100);
    }
}
task 2
{
      while(1)
    {
            dosomething();
           delay(100);
    }
}
这时候呢,我就想在空闲任务dle  task中进入停机模式,经过在需要在dle中时间后唤醒停机模式,立马跳转到task1  或者task2中  也就是


 OS_TaskIdle
{
      getdelaytime();//计算出计划中在dle 中的运行时间  也就是从刚进入dle任务  到退出dle任务并去执行 task1   或者task2的时间
      启动定时器();            //  定时 getdelaytime()获取的时间。

      关闭系统时钟();
       进入(停机模式低功耗);//等待中断或者定时器到来唤醒
      初始化系统时钟();
       初始化ucos滴答时钟();  //执行完这里就切换出去task1或者task2了
}

我的思路是这样子  现在搞不起出我的思路对不对,然后我也对这个怎么获取需要延时的时间没有什么好的办法  ,好像进入停机模式定时器是关闭的,那么我改如何定时,我也想到用RTC之中闹醒来唤醒 
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
飞雪飘花
1楼-- · 2019-07-21 03:29
1375917982gxut 发表于 2016-11-14 22:37
多分享一下吧,我觉得你的想法很好,但是只用stm32好像不能实现

可以的,后来实现了,基本就是用RTC闹钟唤醒,休眠前获取当前的OS_Tick,还有延迟的Tick,RTC闹钟就知道设置该参数了。
正点原子
2楼-- · 2019-07-21 07:22
帮顶....
vitasnokia
3楼-- · 2019-07-21 09:57
 精彩回答 2  元偷偷看……
Watmin
4楼-- · 2019-07-21 12:44
确实需要RTC来做待机唤醒,而且有一个问题是,唤醒之后MCU是从main开始运行的。
不建议在空闲任务做这些处理
飞雪飘花
5楼-- · 2019-07-21 13:56
vitasnokia 发表于 2016-9-27 15:32
楼主,解决了没,我现在也是和你的思路一样,但是我是用串口唤醒的,怎么用串口唤醒了?

加QQ763944603,我记得我后面做到了
vitasnokia
6楼-- · 2019-07-21 17:27
 精彩回答 2  元偷偷看……

一周热门 更多>