|
使用LPTIME的CH1进行持续的输入脉冲周期检测 (外部输入为 约 1HZ信号) , 需要配置 LPTIME CH1管脚为 输入捕获状态 ,
CH1管脚为 PA8 , PA8的可用配置为 :
1 :PA8 GPIO
2 :SEG0 LCD 驱动 SEG 端
3 :LPT32_CH1 低功耗定时器外部通道
4 :COMP2_INP1
如何将该管脚配置为 LPT32_CH1 ?
目前处理为 :
1 :将PA设置为数字功能 ,CMP2_INP_PORT :为 GPIOA , CMP2_INP_PIN 为 (0x1U << 8U)
GPIO_SetPinMode(CMP2_INP_PORT,CMP2_INP_PIN,GPIO_MODE_DIGITAL);
GPIO_EnablePinInput(CMP2_INP_PORT,CMP2_INP_PIN );
2 :配额LPTIME 为CH1捕获状态 。LPTIME 时钟已经打开 ,
//stop running
LPTIM->CR = 0 ;
// clock 32768, predive is 1 , timer mode
LPTIM->CFGR = 0 ;
// use max counter
LPTIM->ARR = 0xffffffff ;
// enable ch1 capture . rising edge .
LPTIM->CCSR = 0x01 ;
// enable CC1 capture interrupt.
LPTIM->IER = 0x01;
//clear interrupt flage
LPTIM->ISR = 0xfffff;
在中断中检查 CCR1中断,当CCR1中断产生时 读取CCR1CCR1进行处理 。
if((LPTIM->ISR & LPTIM->IER ) & 1)
{
read LPTIM->CCR1;
do something...
}
LPTIM->ISR = LPTIM->ISR ;
目前只能检测到上电时 一次中断, 后续检测不到上升沿 ?
|
|