打印
[Kinetis]

MKL02Z32VFG4中断进VLPS模式的问题(已解决)

[复制链接]
1901|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
goodrenze|  楼主 | 2014-7-31 17:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-8-7 14:57 编辑

在自己的程序里面用LPTMR0做一个60s的时钟中断,时钟源是LPO。在进入时钟中断后,处理下时间,然后调用进入VLPS模式的函数。上电后,第一次进60s中断后,处理完时间进VLPS模式正常,电流在5uA左右。但是第二次及之后的情况,会出现调用进入VLPS模式函数后,电流超过了1mA,而且此时无法响应串口收发数据。
进入VLPS函数是在60s中断里面调用的。我改成进入VLPS函数在主循环函数中调用就不会有电流超过1mA的情况,可以正常进入VLPS模式。
想请问下以上问题是什么原因引起的?不能在中断的函数中进入VLPS模式吗?

相关帖子

沙发
FSL_TICS_ZJJ| | 2014-7-31 18:20 | 只看该作者
VLPS是由中断唤醒的,所以你不可以在中断中进入低功耗。

使用特权

评论回复
板凳
goodrenze|  楼主 | 2014-8-1 12:52 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-7-31 18:20
VLPS是由中断唤醒的,所以你不可以在中断中进入低功耗。

这是单片机本身的特性说决定的吗?就是说VLPS低功耗模式只能在中断函数体之外进入,不能在中断函数体之内进入。
如果在中断函数体之内进入VLPS模式,一般会出现什么情况?

使用特权

评论回复
地板
FSL_TICS_Jeremy| | 2014-8-1 13:59 | 只看该作者
goodrenze 发表于 2014-8-1 12:52
这是单片机本身的特性说决定的吗?就是说VLPS低功耗模式只能在中断函数体之外进入,不能在中断函数体之内 ...

我们不推荐怎么做,中断内涉及到现场保护机制,执行VLPS模式不一定能成功进入的。
一般中断函数执行时间越短越好,不要再中断中做比较长的操作,

使用特权

评论回复
5
goodrenze|  楼主 | 2014-8-1 15:01 | 只看该作者
FSL_TICS_Jeremy 发表于 2014-8-1 13:59
我们不推荐怎么做,中断内涉及到现场保护机制,执行VLPS模式不一定能成功进入的。
一般中断函数执行时间 ...

主要是出于降功耗考虑,希望时钟中断一执行完就重新进入VLPS模式。如果还要跳转到主循环函数中,单片机在全速运行的时间就会增加,功耗也会相应增加。
不过如果从中断进VLPS模式会有异常,保险起见也只能在主循环函数里面进入了。

使用特权

评论回复
6
FSL_TICS_Jeremy| | 2014-8-1 16:51 | 只看该作者
goodrenze 发表于 2014-8-1 15:01
主要是出于降功耗考虑,希望时钟中断一执行完就重新进入VLPS模式。如果还要跳转到主循环函数中,单片机在 ...

从中断调回主函数最多就十几个时钟,所以功耗的增加没有想象中那么大的。

使用特权

评论回复
7
goodrenze|  楼主 | 2014-8-2 12:51 | 只看该作者
FSL_TICS_Jeremy 发表于 2014-8-1 16:51
从中断调回主函数最多就十几个时钟,所以功耗的增加没有想象中那么大的。 ...

主要是我的主循环函数里面还有其他的一些操作,会占用一些时间。当时就是想避开这些时间占用,才想到直接从中断里面进VLPS模式的。现在不行就只能看主循环函数里面能不能再优化下时间了。
谢谢您的指教。

使用特权

评论回复
8
FSL_TICS_Jeremy| | 2014-8-4 09:14 | 只看该作者
goodrenze 发表于 2014-8-2 12:51
主要是我的主循环函数里面还有其他的一些操作,会占用一些时间。当时就是想避开这些时间占用,才想到直接 ...

不客气,有问题再交流!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

112

主题

163

帖子

1

粉丝