|
|
@@ -303,14 +303,17 @@
|
|
|
#define ENC_Pluse_Nr_2_angle(Nr) (360.0f/(float)ENC_MAX_RES * (Nr))
|
|
|
|
|
|
#if ENCODER_TYPE==ENCODER_MPS
|
|
|
-#define ENC_PWM_Min_P (1.0f/131.0f)
|
|
|
+#define ENC_PWM_Min_P (1.0f/(131.0f + 1.0f))
|
|
|
+#define ENC_PWM_Max_P 1.0f
|
|
|
#define ENC_Duty(d, t) ((1.0f/128.0f) * (130.0f * (d)/(t) - 1.0f))
|
|
|
#elif ENCODER_TYPE==ENCODER_MT
|
|
|
/*min. 994 hz*/
|
|
|
#define ENC_PWM_MAX_RES 4119.0F
|
|
|
#define ENC_PWM_INIT_WIDTH 16.0F //PWM 起始宽度
|
|
|
#define ENC_PWM_END_WIDTH 4.0F
|
|
|
-#define ENC_PWM_Min_P (ENC_PWM_INIT_WIDTH/ENC_PWM_MAX_RES)
|
|
|
+#define ENC_PWM_Min_P (ENC_PWM_INIT_WIDTH/(ENC_PWM_MAX_RES + 1.0f))
|
|
|
+#define ENC_PWM_Max_P ((ENC_PWM_MAX_RES-ENC_PWM_END_WIDTH)/(ENC_PWM_MAX_RES - 1.0f))
|
|
|
+
|
|
|
#define PWM_Duty(d, t) ((d)/(t))
|
|
|
#define ENC_Duty(d, t) ((PWM_Duty(d, t)*ENC_PWM_MAX_RES - ENC_PWM_INIT_WIDTH)/(ENC_PWM_MAX_RES - ENC_PWM_END_WIDTH - ENC_PWM_INIT_WIDTH)
|
|
|
#else
|