STM8S TIM2 输入捕捉功能

2019-07-19 20:46发布

使用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左右。请教做过的兄弟看看问题在什么地方。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
rocky.fan
1楼-- · 2019-07-19 23:48
后来发现改变预装载的值为60000,就可以抓到正确的值。但没发现有什么联系。
正点原子
2楼-- · 2019-07-20 00:28
 精彩回答 2  元偷偷看……
rocky.fan
3楼-- · 2019-07-20 04:07
 精彩回答 2  元偷偷看……
唯丶
4楼-- · 2019-07-20 08:49
预分频计数后面会加1,所以0xffff+1=0,计数器停止工作。

一周热门 更多>