中级会员
 
- 积分
- 213
- 金钱
- 213
- 注册时间
- 2020-7-3
- 在线时间
- 71 小时
|
10金钱
本帖最后由 暮二木 于 2021-3-10 21:22 编辑
有人知道stm32可以捕获动态的脉冲信号的频率吗,此脉冲信号是电机的测速信号,频率是变化的,有时会变得很快,但是频率不超过500HZ,
在脉冲信号的频率变高的时候捕获的频率突然有几个高频率,但是在频率变低的时候就没有,有没有大佬知道怎么解决这个问题啊,这个是捕获中断的代码TIM8_Init(0xFFFF,(72-1));
void TIM8_CC_IRQHandler(void)
{
if(TIM_GetITStatus(TIM8, TIM_IT_CC3) != RESET)
{
TIM_ClearITPendingBit(TIM8, TIM_IT_CC3); //清除中断标志位
thiscount = TIM_GetCapture3(TIM8); //记录第一次上升沿的CNT值
if(lastcount < thiscount) //捕获第二个上升沿
{
test = thiscount - lastcount; //两次上升沿的差值
}
else
{
test = (0xffff - lastcount) + thiscount; //两次上升沿的差值
}
lastcount=thiscount;
fq = 1000000 / test; //脉冲的频率
}
}
|
|