void TIM8_CC_IRQHandler(void)
{
u32 IC3Value=0;
if(TIM3->SR & 0x0001) //检测是否发生了溢出中断
{
OvNum++;
tmp_sr=TIM3->SR;
TIM3->SR = tmp_sr&0xfffe; //清除溢出中断的标志
}
if(TIM_GetITStatus(TIM8, TIM_IT_CC3) != RESET) //如果产生了捕获中断
{
TIM_ClearITPendingBit(TIM8, TIM_IT_CC3); //清标志位
IC3Value = TIM_GetCapture3(TIM8); //读取CCR3中的值
TIM_SetCounter(TIM8, 0); //将计数器清零
if(IC3Value)
{
Frequency = 72000000 / (65535*OvNum+IC3Value); //计算频率
OvNum=0;
}
}
}
我没减是觉得 ,我第一次测量结果不正确 我可以不要 。但后面的结果 应该是正确的 。
|