本帖最后由 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*/
}
|