OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5418|回复: 9

ucos 停机低功耗模式求助

[复制链接]

28

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2013-8-10
在线时间
37 小时
发表于 2015-10-26 14:51:41 | 显示全部楼层 |阅读模式
5金钱
我在做一个低功耗的实验,遇到一些问题,请教一下各位大神。
我有如下两个任务
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之中闹醒来唤醒 

最佳答案

查看完整内容[请看2#楼]

可以的,后来实现了,基本就是用RTC闹钟唤醒,休眠前获取当前的OS_Tick,还有延迟的Tick,RTC闹钟就知道设置该参数了。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

28

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2013-8-10
在线时间
37 小时
 楼主| 发表于 2015-10-26 14:51:42 | 显示全部楼层
1375917982gxut 发表于 2016-11-14 22:37
多分享一下吧,我觉得你的想法很好,但是只用stm32好像不能实现

可以的,后来实现了,基本就是用RTC闹钟唤醒,休眠前获取当前的OS_Tick,还有延迟的Tick,RTC闹钟就知道设置该参数了。
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2015-11-1 23:26:50 | 显示全部楼层
帮顶....
回复

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2016-9-27 15:32:29 | 显示全部楼层
楼主,解决了没,我现在也是和你的思路一样,但是我是用串口唤醒的,怎么用串口唤醒了?
回复

使用道具 举报

6

主题

115

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1027
金钱
1027
注册时间
2015-6-1
在线时间
126 小时
发表于 2016-9-27 17:14:43 | 显示全部楼层
确实需要RTC来做待机唤醒,而且有一个问题是,唤醒之后MCU是从main开始运行的。
不建议在空闲任务做这些处理
回复

使用道具 举报

28

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2013-8-10
在线时间
37 小时
 楼主| 发表于 2016-11-1 09:31:28 | 显示全部楼层
vitasnokia 发表于 2016-9-27 15:32
楼主,解决了没,我现在也是和你的思路一样,但是我是用串口唤醒的,怎么用串口唤醒了?

加QQ763944603,我记得我后面做到了
回复

使用道具 举报

8

主题

74

帖子

0

精华

初级会员

Rank: 2

积分
176
金钱
176
注册时间
2016-6-29
在线时间
34 小时
发表于 2016-11-11 10:15:09 | 显示全部楼层
飞雪飘花 发表于 2016-11-1 09:31
加QQ763944603,我记得我后面做到了

ok,我加你
回复

使用道具 举报

28

主题

218

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
498
金钱
498
注册时间
2013-11-19
在线时间
92 小时
发表于 2016-11-14 22:37:18 | 显示全部楼层
多分享一下吧,我觉得你的想法很好,但是只用stm32好像不能实现
回复

使用道具 举报

28

主题

119

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
445
金钱
445
注册时间
2013-8-10
在线时间
37 小时
 楼主| 发表于 2016-12-13 09:25:31 | 显示全部楼层
1375917982gxut 发表于 2016-11-14 22:37
多分享一下吧,我觉得你的想法很好,但是只用stm32好像不能实现

可以的,后来实现了,基本就是用RTC闹钟唤醒,休眠前获取当前的OS_Tick,还有延迟的Tick,RTC闹钟就知道设置该参数了。
回复

使用道具 举报

3

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-5-8
在线时间
27 小时
发表于 2019-6-1 09:49:10 | 显示全部楼层
问一下,ucos ii进入停机模式  喂狗怎么解决的?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 16:03

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表