新手上路
- 积分
- 42
- 金钱
- 42
- 注册时间
- 2017-5-22
- 在线时间
- 17 小时
|
1金钱
用F4的TIM5做流量计转数捕获,每次值都偏大很多(70%左右),还不稳定。
程序是改编原子哥的输入捕获例程。TIM5 初始化没变,就中断函数改为每捕获一次上升沿,就串口打印一次计数。
奇怪的是我将TIM5的初始化程序和中断处理程序中的5改为4,计数器值改为0xFFFF,输入端口改为PB6(也就是TIM4的通道1)后,计数就正常很稳定。外部流量计接线也没变呀。
这是什么原因呢,实在想不明白。
问题是出在32位重装载值上,还是外部干扰太大了,多计了?要是干扰大,为什么用TIM4就可以?
//定时器5中断服务程序
void TIM5_IRQHandler(void)
{
if(TIM_GetITStatus(TIM5, TIM_IT_CC1) == SET)
{
Count_num1=Count_num1+1;/************************************************************/
printf("IRQ............... Count_num1== : %d \r\n ",Count_num1);
}
TIM_ClearITPendingBit(TIM5, TIM_IT_CC1|TIM_IT_Update); //清除中断标志位
}
|
|