使用STM8S103 TIM2 输入捕捉功能时发现 捕捉的数值不对
TIM2初始化
void Init_Timer2(void)
{
TIM2_TimeBaseInit(TIM2_PRESCALER_16, 0xFFFF);
TIM2_ICInit(TIM2_CHANNEL_2, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x01);
TIM2_ARRPreloadConfig(ENABLE);
TIM2_ITConfig(TIM2_IT_UPDATE, ENABLE);
TIM2_ITConfig(TIM2_IT_CC2, ENABLE);
TIM2_Cmd(ENABLE);
}
中断程序
INTERRUPT_HANDLER(TIM2_CAP_COM_IRQHandler, 14)
{
GPIO_WriteReverse(GPIOC, GPIO_PIN_3);
TIM2_SetCounter(0x0000);
buf0_l = TIM2_GetCapture2();
TIM2_ClearFlag(TIM2_FLAG_CC2);
TIM2_ClearITPendingBit(TIM2_IT_CC2);
}
TMR时钟1us,上升沿捕捉,上升沿之间4ms。 可以正常进入捕捉中断(4ms)但buf0_l里面值一直不对,值在0XF37C左右。请教做过的兄弟看看问题在什么地方。 |