diff --git a/APP/Device/Device_speed/speed_to_bldc.c b/APP/Device/Device_speed/speed_to_bldc.c
index 913f112..06796c7 100644
--- a/APP/Device/Device_speed/speed_to_bldc.c
+++ b/APP/Device/Device_speed/speed_to_bldc.c
@@ -550,11 +550,22 @@ static void ptz_hori_pid_task()
g_ptz.hori_pid.hall_h2_count +
g_ptz.hori_pid.hall_h3_count;
+ static uint32_t time, lastTime, horiTime;
+ time = OSTimeGet();
+ horiTime = time - lastTime;
+ if (horiTime < 0) {
+ continue;
+ }
+ lastTime = time;
+
if(g_ptz.hori_pid.hall_h123_count >= 2)
{
+ // g_ptz.hori_pid.hall_h123_motor_speed =
+ // 60000.0 * (float)(g_ptz.hori_pid.hall_h123_count/* - 1*/) /
+ // (float)PTZ_HORI_PID_T / PTZ_HORI_ONE_CYCLE_HALL_NUM;
g_ptz.hori_pid.hall_h123_motor_speed =
60000.0 * (float)(g_ptz.hori_pid.hall_h123_count/* - 1*/) /
- (float)PTZ_HORI_PID_T / PTZ_HORI_ONE_CYCLE_HALL_NUM;
+ (float)horiTime / PTZ_HORI_ONE_CYCLE_HALL_NUM;
}
@@ -1191,11 +1202,23 @@ static void ptz_vert_pid_task()
g_ptz.vert_pid.hall_h2_count +
g_ptz.vert_pid.hall_h3_count;
+ static uint32_t time, lastTime, vertTime;
+ time = OSTimeGet();
+ vertTime = time - lastTime;
+ if (vertTime < 0) {
+ continue;
+ }
+ lastTime = time;
+
if(g_ptz.vert_pid.hall_h123_count >= 2)
{
+ // g_ptz.vert_pid.hall_h123_motor_speed =
+ // 60000.0 * (float)(g_ptz.vert_pid.hall_h123_count /*-1*/) /
+ // (float)PTZ_VERT_PID_T / PTZ_VERT_ONE_CYCLE_HALL_NUM;
+
g_ptz.vert_pid.hall_h123_motor_speed =
60000.0 * (float)(g_ptz.vert_pid.hall_h123_count /*-1*/) /
- (float)PTZ_VERT_PID_T / PTZ_VERT_ONE_CYCLE_HALL_NUM;
+ (float)vertTime / PTZ_VERT_ONE_CYCLE_HALL_NUM;
}
diff --git a/PROJECT/OS2.ewp b/PROJECT/OS2.ewp
index 1498948..0ee287b 100644
--- a/PROJECT/OS2.ewp
+++ b/PROJECT/OS2.ewp
@@ -74,7 +74,7 @@