- 积分
- -71
- 回帖
- 0
- 西莫币
-
- 贡献
-
- 威望
-
- 存款
-
- 阅读权限
- 0
- 最后登录
- 1970-1-1
该用户从未签到
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
x
QEP速度计算
QEP速度计算.rar
(759 Bytes, 下载次数: 19)
-
- //======================================================================================================
- //QEP速度计算
- //======================================================================================================
-
- if (SpeedLoopCount>=SpeedLoopPrescaler)
- {
- // 旋转方向判定
- DirectionQep = 0x4000&EvaRegs.GPTCONA.all;
- DirectionQep = DirectionQep>>14;//0x4000=0100 0000 0000 0000故右移14位
- NewRawTheta =_IQ(EvaRegs.T2CNT);
- // 计算机械角度
- if(DirectionQep ==1) //T2STAT=1,递增计数,代表反转;
- {
- RawThetaTmp = NewRawTheta - OldRawTheta;
- }
- else if(DirectionQep ==0) //T2STAT=0,递减计数,代表正转
- {
- RawThetaTmp = OldRawTheta-NewRawTheta;
- }
- if(RawThetaTmp < _IQ(0))
- RawThetaTmp = RawThetaTmp + TotalPulse;
- else RawThetaTmp = RawThetaTmp;
- Speed = _IQmpy(RawThetaTmp,SpeedScaler);
- SpeedRpm = _IQmpy(BaseRpm,Speed);
- OldRawTheta = NewRawTheta;
- SpeedLoopCount=1;
- RawThetaTmp=0;
- }
- else SpeedLoopCount++;
复制代码 |
|