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 @@