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模塊初始化,設(shè)置計數(shù)器頻率及計數(shù)器計數(shù)間隔時間
}
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); //設(shè)置比較寄存器值
LPTMR0_CSR |= LPTMR_CSR_TEN_MASK; //開啟LPTMR模塊設(shè)置
}
|