void timer_init(uint_8 timer_No,uint_32 time_ms)
{
if(timer_No==0)
{
lptmr_init(time_ms); //LPTMR模块初始化,时钟源已配置为1KHz的LPO时钟
}
else if(timer_No==1||timer_No==2)
{
tpm_timer_init(timer_No,3000,time_ms); //tpm模块初始化,设置计数器频率及计数器计数间隔时间
}
else
return;
}
void lptmr_init(uint_32 time_ms)
{
uint_16 compare_value;//声明变量
SIM_SCGC5 |= SIM_SCGC5_LPTMR_MASK;//使能LPTMR模块时钟
SIM_SOPT1 |= SIM_SOPT1_OSC32KSEL(0x11);//为ERCLK32K选择时钟源
LPTMR0_PSR |= LPTMR_PSR_PCS(1)|LPTMR_PSR_PBYP_MASK;//选择配置为1KHZ的LPO时钟源 //Lpo 直接传送给 lptmr
compare_value=time_ms; //赋值
LPTMR0_CMR = LPTMR_CMR_COMPARE(compare_value); //设置比较寄存器值
LPTMR0_CSR |= LPTMR_CSR_TEN_MASK; //开启LPTMR模块设置
}
|