编码器计数,计算速度,这段代码没大看懂,求帮助

2019-07-21 01:30发布

#include "stm32f10x.h"
#include "stm32f10x_it.h" 

#define prd    10000
#define Vbreak 8000

u16 cnt2,cnt3,cnt4,cnt5;
s32 CNT2,CNT3,CNT4,CNT5;
s32 V2,V3,V4,V5;

extern s32 rcnt2,rcnt3,rcnt4,rcnt5;

void get_encoder_ONE(void)//*******************计算当前实际速度V
{
  s32 CNT2_temp,CNT2_last;
  
  cnt2 = TIM2 -> CNT;
  CNT2_last = CNT2;
  CNT2_temp = rcnt2 * prd + cnt2;  
  V2 = CNT2_temp - CNT2_last;
  
  while (V2>Vbreak)  
  {      
   rcnt2--;      
   CNT2_temp = rcnt2 * prd + cnt2;
   V2 = CNT2_temp - CNT2_last;  
  }     
  while (V2<-Vbreak)   
  {      
   rcnt2++;      
   CNT2_temp = rcnt2 * prd + cnt2;
   V2 = CNT2_temp - CNT2_last;  
  }
  CNT2 = CNT2_temp;  
  
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。