中级会员
 
- 积分
- 445
- 金钱
- 445
- 注册时间
- 2013-8-10
- 在线时间
- 37 小时
|
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闹钟就知道设置该参数了。
|