找回密码
 立即注册

QQ登录

只需一步,快速开始

手机号码,快捷登录

手机号码,快捷登录

Flux电机有限元分析教程西莫团购入口 | 奖励入口当当网购物入口 | 奖励入口欢迎使用!西莫论坛App开放下载Motor-CAD电机多物理域设计教材购买入口 | 奖励入口
★新会员论坛须知★《西莫电机技术》第40期发售火热进行中
Flux电机电磁阀有限元分析教程团购入口 | 奖励入口论坛微信公众平台欢迎入驻
西莫电机及相关产品供需交流群开放邀请★ 论坛VIP会员申请 ★Motor-CAD.MANATEE电磁热振动噪声教程 | 奖励入口西莫团队欢迎您的加盟!
宣传推广合作请联系QQ:25941174西莫电机论坛微信群正式开放Flux变压器与电抗器有限元分析团购入口 | 奖励入口西莫电机论坛技术版区QQ群汇总
查看: 1727|回复: 0

[分享] QEP速度计算

[复制链接]

该用户从未签到

发表于 2012-5-7 14:22 | 显示全部楼层 |阅读模式 来自: 中国江苏镇江
QEP速度计算

  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|浙公网安备33010502012192号 )

GMT+8, 2025-2-21 03:29 , Processed in 0.048940 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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