OpenEdv-开源电子网

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

求助!STM8S低功耗

[复制链接]

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
发表于 2014-3-9 09:37:32 | 显示全部楼层 |阅读模式
请教各位大神:STVD+COMIC开发环境,基于寄存器开发,怎么进低功耗,例程要么是IAR的,要么是基于固件库
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2014-3-9 09:39:21 | 显示全部楼层
回复【楼主位】爱博不专:
---------------------------------
芯片是:STM8S105C6,不过一个系列应该都一样吧
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165309
金钱
165309
注册时间
2010-12-1
在线时间
2108 小时
发表于 2014-3-9 10:39:56 | 显示全部楼层
没研究...
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2014-3-9 15:57:33 | 显示全部楼层
在别的地方看到有段代码是嵌入汇编,_asm("halt");不知什么环境下的,

自己慢慢学吧

真心觉得IAR下MSP430 的 LPM好用。
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-2-25
在线时间
0 小时
发表于 2014-3-11 13:58:03 | 显示全部楼层
回复【楼主位】爱博不专:
---------------------------------
一般STM8有三种模式:
wfi、Halt、Active Halt
我只用过其中的两种,是在STVD编译器下采用嵌套汇编语句写的:

_asm("wfi");//等待中断模式
_asm("halt");//停机模式

Active Halt与Halt模式类似,不过我没用过。
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-2-25
在线时间
0 小时
发表于 2014-3-11 14:13:45 | 显示全部楼层
回复【4楼】爱博不专:
---------------------------------
MSP430内部有多个时钟源:MCLK、ACLK、SMCLK等;
1.不论LPM0还是LPM1、LPM2...等模式,其原理都差不多——就是关闭相应的时钟源,
这就意味着共用这个时钟源的外设全部失去该时钟信号,往往功耗也就比较低。

2.而stm8大部分外设的时钟都来源于同一个时钟信号:Peripheral Clock
每个外设都有一个独立的时钟信号开关,操作起来自然也就麻烦了一点点(我个人不怎么觉得~)

所以相比之下,MSP430的低功耗操作其实只是比较方便,但是说好用那就不见得了~
毕竟有时只是想关闭其中部分外设而保留其他外设的时钟。
回复 支持 反对

使用道具 举报

35

主题

227

帖子

3

精华

高级会员

Rank: 4

积分
956
金钱
956
注册时间
2014-3-5
在线时间
35 小时
 楼主| 发表于 2014-3-11 19:35:12 | 显示全部楼层
回复【5楼】LWM1368:
---------------------------------
谢谢了!

另外,进入低功耗之前,用不用配置时钟切换什么的? 还是直接用就行?
把看到的有意义的例子进行扩充,并将其切实的运用到自己的设计中。 应用确实不容易,水平是在不断的实践中完善和发展的。
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2014-2-25
在线时间
0 小时
发表于 2014-3-12 08:17:32 | 显示全部楼层
回复【7楼】爱博不专:
---------------------------------
看需要吧~
比方说,一个产品在正常开机工作时时用内部高速RC时钟源,
但在空闲时为节约功耗关机高速RC,可切换低速RC。
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-5
在线时间
1 小时
发表于 2014-4-6 08:52:17 | 显示全部楼层
过来看看  学习学习 啊哈哈哈哈
要好好学习了
回复 支持 反对

使用道具 举报

0

主题

13

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2014-4-5
在线时间
1 小时
发表于 2014-4-6 08:55:08 | 显示全部楼层
过来看看  学习学习 啊哈哈哈哈
要好好学习了
回复 支持 反对

使用道具 举报

3

主题

28

帖子

0

精华

初级会员

Rank: 2

积分
60
金钱
60
注册时间
2014-5-6
在线时间
0 小时
发表于 2014-5-6 15:28:06 | 显示全部楼层
我之前做过,进入Halt 模式,这个模式只有中断才能唤醒。方法很简单,当你所有任务都完成的时候,你就可以进入该模式。你可以声明一个标志位Flga
当你的任务完成的时候,就可以将flag=1;你在这么写
While(1)
{
   if(1==flag)
      _asm("halt");// 在这个地方 就会进入halt模式,这时候程序就完全停止这里,不跑了。你仿真的时候会发现,无法仿真。
                           //当有中断的时候,程序会从这个地方开始跑了
}
进入halt模式之前,你也可以把其他模块关掉省电了。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2024-11-22 19:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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