打印
[STM8]

STM8S103 TIM2 输入捕捉功能

[复制链接]
3020|7
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
fcw|  楼主 | 2015-9-16 11:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
使用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左右。请教做过的兄弟看看问题在什么地方。
沙发
mmuuss586| | 2015-9-16 12:38 | 只看该作者
那你换算下,差多少;
找下规律看看,是不是和时钟的分频系数有关;

使用特权

评论回复
板凳
fcw|  楼主 | 2015-9-16 13:18 | 只看该作者
mmuuss586 发表于 2015-9-16 12:38
那你换算下,差多少;
找下规律看看,是不是和时钟的分频系数有关;

没有规律,TMR时钟1Mhz ,4ms应该计数4000,实际计数是62332。

使用特权

评论回复
地板
fcw|  楼主 | 2015-9-16 16:09 | 只看该作者
发现改变预装载的值为60000,就可以抓到正确的值。还没发现有什么联系。

使用特权

评论回复
5
fcw|  楼主 | 2015-9-17 15:00 | 只看该作者
没有人用过捕捉功能吗?:)

使用特权

评论回复
6
稳稳の幸福| | 2015-9-17 16:52 | 只看该作者
捕捉功能很少用的,这个一半应用不会使用。

使用特权

评论回复
7
Snow7| | 2015-9-17 21:19 | 只看该作者
TIM2_ICInit(TIM2_CHANNEL_2, TIM2_ICPOLARITY_RISING, TIM2_ICSELECTION_DIRECTTI, TIM2_ICPSC_DIV1, 0x01);
设置对了吗

使用特权

评论回复
8
fcw|  楼主 | 2015-9-18 09:48 | 只看该作者
设置没有问题,TIM2_ch2   上升沿触发  1分频 2个事件后触发。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

fcw

21

主题

66

帖子

1

粉丝