没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
试读
3页
MCU实现低功耗本质而言便是停止MCU工作,通过中断的方式重新唤醒MCU,这些中断可以包括外部IO中断,UART接收中断,定时器中断等等。如果结合嵌入式操作系统,可以在空任务或者空任务钩子函数中进入低功耗模式,在系统滴答时钟中断服务函数中重新回到正常工作模式。利用操作系统进入和退出低功耗模式,需要熟悉嵌入式操作系统的空任务和系统滴答时钟中断,下面结合MSP430F5438和FreeRTOS总结一下如何使用嵌入式操作系统实现低功耗工作。
资源推荐
资源详情
资源评论
如何在
FreeRTOS
下实现低功耗——
MSP430F5438
平台
标签:MSP430FreeFTOS 嵌入式低功耗
2013-10-15 16:216291 人阅读评论(3)收藏举报
分类:
单片机(26)
版权声明:本文为博主原创文章,未经博主允许不得转载。
目录(?)[+]
0.前言
MCU 实现低功耗本质而言便是停止 MCU 工作,通过中断的方式重新唤醒 MCU,这些中断可以包括外
部 IO 中断,UART 接收中断,定时器中断等等。如果结合嵌入式操作系统,可以在空任务或者空任务钩
子函数中进入低功耗模式,在系统滴答时钟中断服务函数中重新回到正常工作模式。利用操作系统进入和
退出低功耗模式,需要熟悉嵌入式操作系统的空任务和系统滴答时钟中断,下面结合 MSP430F5438 和
FreeRTOS 总结一下如何使用嵌入式操作系统实现低功耗工作。
1.进入低功耗模式
多数嵌入式操作系统都包含一个空任务,空任务优先级最低且一直保持就绪状态,空任务可以用于统
计 CPU 使用率,或者让 MCU 进入低功耗状态。如果不想修改空任务,还可以通过空任务的钩子函数插入
实现低功耗的代码。在 FreeRTOS 中,若需要打开空任务钩子函数,需要在 FreeRTOSCong.h 中定义
congUSE_IDLE_HOOK
#dene congUSE_IDLE_HOOK1
钩子函数中实现低功耗的代码如下
[cpp]view plaincopy
1. voidvApplicationIdleHook(void)
2. {
3. /*Calledoneachiterationoftheidletask.Inthiscasetheidletask
4. justentersalowpowermode.*/
5. __bis_SR_register(LPM3_bits+GIE);
6. }
在这里可打开全局中断,若全局中断关闭那么系统可能再也“活”不过来了。
2.退出低功耗模式
在大多数嵌入式操作系统中可以在系统滴答中断函数中退出低功耗模式。由于 MSP430 的退出低功耗
的指令只能在中断中使用,所以一旦进入系统滴答中断函数,可先退出低功耗模式。具体的代码实现如下:
[cpp]view plaincopy
资源评论
小西飞
- 粉丝: 2
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功