西莫电机圈

 找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

查看: 1703|回复: 0

[分享] QEP速度计算

[复制链接]

该用户从未签到

发表于 2012-5-7 14:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
QEP速度计算 QEP速度计算.rar (759 Bytes, 下载次数: 19)

  1. //======================================================================================================
  2. //QEP速度计算
  3. //======================================================================================================
  4.    
  5.      if (SpeedLoopCount>=SpeedLoopPrescaler)
  6.      {   
  7. // 旋转方向判定
  8.    DirectionQep = 0x4000&EvaRegs.GPTCONA.all;
  9.    DirectionQep = DirectionQep>>14;//0x4000=0100 0000 0000 0000故右移14位
  10.     NewRawTheta =_IQ(EvaRegs.T2CNT);
  11. // 计算机械角度
  12.    if(DirectionQep ==1) //T2STAT=1,递增计数,代表反转;
  13.    {
  14.     RawThetaTmp = NewRawTheta - OldRawTheta;     
  15.    }
  16.    else if(DirectionQep ==0) //T2STAT=0,递减计数,代表正转
  17.    {
  18.      RawThetaTmp = OldRawTheta-NewRawTheta;
  19.    }
  20.    if(RawThetaTmp < _IQ(0))
  21.      RawThetaTmp = RawThetaTmp + TotalPulse;
  22.    else RawThetaTmp = RawThetaTmp;
  23.    Speed = _IQmpy(RawThetaTmp,SpeedScaler);
  24.    SpeedRpm = _IQmpy(BaseRpm,Speed);      
  25.    OldRawTheta = NewRawTheta;
  26.       SpeedLoopCount=1;
  27.    RawThetaTmp=0;
  28.   }
  29.      else SpeedLoopCount++;
复制代码
西莫电机论坛微信公众平台正式上线!★详情请点击★ 西莫电机论坛会员交流专用群欢迎您西莫电机论坛加群请注明论坛用户名及所从事专业,否则不予通过
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|Archiver|西莫电机圈 ( 浙ICP备10025899号-3 浙公网安备:33028202000436号

GMT+8, 2024-11-22 14:21 , Processed in 0.083033 second(s), 30 queries .

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表