打印
[技术问题解答]

关于KL15的低功耗模式VLPS的问题(已解决)

[复制链接]
1777|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wxb18k|  楼主 | 2014-8-15 15:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 FSL_TICS_A 于 2014-9-15 11:42 编辑

我的程序能成功进入VLPS模式,但是就是无法通过LPTMR定时器唤醒,不知道是不是因为在低功耗模式下定时器不工作了,下面是我定时器的初始化代码,请各位高手点评谢谢
void lptmr_internal_ref_init(uint32_t int_ms)
{
    uint32_t int_ticks;
    int_ticks=4000*int_ms/1024;
    MCG_C1|=MCG_C1_IRCLKEN_MASK;                       //使能内部参考时钟
    MCG_C1|=MCG_C1_IREFSTEN_MASK;                      //停止模式的时候内部时钟保持使能
    MCG_SC &= ~MCG_SC_FCRDIV(7);                       //清FCRDIV分频器
    MCG_SC |= MCG_SC_FCRDIV(0x00) ;                    //1分频
    MCG_C2|=MCG_C2_IRCS_MASK;                          //MCG_C[IRCS]=1,使能快速内部参考时钟(4MHz)
    SIM_SCGC5|=SIM_SCGC5_LPTMR_MASK;                   //使能LPT模块时钟
                                                       //使用内部时钟,1024预分频
    LPTMR0_PSR=LPTMR_PSR_PCS(0x00)|LPTMR_PSR_PRESCALE(0x09);
                                                       //设置模数寄存器值
    LPTMR0_CMR=LPTMR_CMR_COMPARE(int_ticks);
    LPTMR0_CSR&=(~LPTMR_CSR_TEN_MASK);                 //清标志
    LPTMR0_CSR&=(~LPTMR_CSR_TFC_MASK);
    LPTMR0_CSR&=(~LPTMR_CSR_TMS_MASK);
    LPTMR0_CSR|=LPTMR_CSR_TEN_MASK;                    //开启LPT模块设置
    LPTMR0_CSR|=LPTMR_CSR_TIE_MASK;                    //开启LPT定时器中断
    NVIC_EnableIRQ(LPTimer_IRQn);                      /* lptmr开启中断                */
    NVIC_SetPriority(LPTimer_IRQn,5);                  /*优先级设置为5*/
}

相关帖子

沙发
FSL_TICS_ZJJ| | 2014-8-15 15:36 | 只看该作者
你先不用进入VLPS,单独调试下你的LPTMR是否能进中断,是否能正常运行。
如果能正常再加入VLPS。

使用特权

评论回复
板凳
wxb18k|  楼主 | 2014-8-15 15:54 | 只看该作者
FSL_TICS_ZJJ 发表于 2014-8-15 15:36
你先不用进入VLPS,单独调试下你的LPTMR是否能进中断,是否能正常运行。
如果能正常再加入VLPS。 ...

我试过了,如果没有进入VLPS的话可以顺利进入LPTMR中断,运行也正常

使用特权

评论回复
地板
FSL_TICS_ZJJ| | 2014-8-15 17:40 | 只看该作者
wxb18k 发表于 2014-8-15 15:54
我试过了,如果没有进入VLPS的话可以顺利进入LPTMR中断,运行也正常

哦,那应该是哪里配置有问题了。
你有没有跟踪你的功耗情况,就是进入低功耗VLPS不启动LPTM看看是否功耗正常,
然后再启动LPTMR看看VLPS不唤醒功耗有什么区别。

使用特权

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

本版积分规则

20

主题

140

帖子

1

粉丝