求助下,FML026中LTIM外部捕捉如何区分通道。
本帖最后由 sinychai 于 2021-4-12 13:11 编辑本人小白,求助下,FML026中LTIM外部捕捉如何区分通道。
项目需要,想用LTIM做低功耗计数器使用,知道有两个通道,但是看了API中,只有LPTIM_CCSR_CAP1SSEL_LPT32_CH1,请问如何也让通道2计数,并且在中断中相应出来。void LptimInit(void){
Lptim_GPIO_Init();
// 开启BSTIM时钟
RCC_OPC_CR2_LPTCKS_Set(RCC_OPC_CR2_LPTCKS_APBCLK);
RCC_OPC_CR2_LPTCKE_Setable(ENABLE);
RCC_PERCLK_SetableEx(LPTCLK, ENABLE);
LPTIM_CR_EN_Setable(DISABLE); // LPTIM关闭
LPTIM_CFGR_PSCSEL_Set(LPTIM_CFGR_PSCSEL_CLKSEL); // 使用CLKSEL选择的时钟
LPTIM_CFGR_DIVSEL_Set(LPTIM_CFGR_DIVSEL_DIV8); // 计数器时钟分频
LPTIM_CFGR_ONST_Set(LPTIM_CFGR_ONST_CONTINUE); // 连续计数模式`
LPTIM_CFGR_TMOD_Set(LPTIM_CFGR_TMOD_NORMAL); // 普通定时器模式
LPTIM_CCSR_CAP1SSEL_Set(LPTIM_CCSR_CAP1SSEL_LPT32_CH1); //通道1捕捉信号源选择LPT32_CH1
LPTIM_CCSR_CAPCFG1_Set(LPTIM_CCSR_CAPCFG1_RISING|LPTIM_CCSR_CAPCFG2_RISING);//通道1上升沿捕捉 蓝色是我加的
LPTIM_CCSR_CC1S_Set(LPTIM_CCSR_CC1S_CAPTURE|LPTIM_CCSR_CC2S_CAPTURE); // 通道1使能比较功能
LPTIM_ARR_Write(0xFFFFFFFF);
NVIC_DisableIRQ(LPTIM_IRQn);
NVIC_SetPriority(LPTIM_IRQn, 2);
NVIC_EnableIRQ(LPTIM_IRQn);
LPTIM_ISR_CC1IF_Clr();
LPTIM_ISR_CC2IF_Clr();
LPTIM_IER_CC1IE_Setable(ENABLE); // 捕捉1中断使能
LPTIM_IER_CC2IE_Setable(ENABLE); // 捕捉2中断使能
LPTIM_CR_EN_Setable(ENABLE); // LPTIM使能
}
uint32_t tmp1=0,tmp2=0;
uint08 count=0;
void LPTIM_IRQHandler(void){
if(LPTIM_ISR_CC1IF_Chk() == SET) {
count++;
if(count ==2 ) {
tmp2 = LPTIM_CCR1_Read();
count = 0;
}else{
tmp1 = LPTIM_CCR1_Read();
}
LPTIM_ISR_CC1IF_Clr();
}
}
通道2的捕获输入只有CH2,只需要配置边沿和使能通道2的捕捉功能
LPTIM_CCSR_CAPCFG2_Set(LPTIM_CCSR_CAPCFG2_RISING);
LPTIM_CCSR_CC2S_Set(LPTIM_CCSR_CC2S_CAPTURE); 只需要配置边沿和使能通道2的捕捉功能
幸运飞艇走势图、福彩双色球走势图、幸运时时彩走势图
页:
[1]