Pārlūkot izejas kodu

加入示波器选择功能

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui 3 gadi atpakaļ
vecāks
revīzija
b21a56bbc2
3 mainītis faili ar 15 papildinājumiem un 18 dzēšanām
  1. 10 9
      Applications/app/app.c
  2. 2 6
      Applications/foc/commands.c
  3. 3 3
      Applications/foc/limit.c

+ 10 - 9
Applications/app/app.c

@@ -143,7 +143,7 @@ static u32 _app_report_task(void *p) {
 	}
 	return 200;
 }
-static int plot_type = 7;
+int plot_type = 7;
 static void plot_smo_angle(void) {
 	float smo_angle = foc_observer_smo_angle();
 	float delta = smo_angle - PMSM_FOC_Get()->in.s_hallAngle;
@@ -158,23 +158,24 @@ static void plot_smo_angle(void) {
 static u32 _app_plot_task(void * args) {
 	if (plot_type == 1) {
 		can_plot2((s16)(PMSM_FOC_Get()->in.s_targetTorque*10.0f), (s16)PMSM_FOC_GetSpeed());
-		//can_plot3((s16)PMSM_FOC_Get()->vel_lim_adrc.z1, (s16)PMSM_FOC_Get()->vel_lim_adrc.z2, (s16)PMSM_FOC_GetSpeed());
-		//can_plot2(test_id, test_iq);
 	}else if (plot_type == 2) {
 		can_plot2(eCtrl_get_RefTorque(), eCtrl_get_FinalTorque());
 	}else if (plot_type == 3) {
-		//can_plot2(PMSM_FOC_GetSpeed(), foc_observer_smo_speed());
 		plot_smo_angle();
 	}else if (plot_type == 4) {
-		can_plot2(eCtrl_get_RefTorque(), PMSM_FOC_Get()->in.s_targetTorque);
+		can_plot2((s16)PMSM_FOC_Get()->out.s_RealIdq.d, (s16)PMSM_FOC_Get()->out.s_RealIdq.q);
 	}else if (plot_type == 5) {
-#ifdef CONFIG_DQ_STEP_RESPONSE
-		can_plot2((s16)(target_d*10.0f), (s16)(PMSM_FOC_Get()->out.s_RealIdq.d * 10.0f));
-#endif
+		can_plot2((s16)PMSM_FOC_Get()->out.s_FilterIdq.d, (s16)PMSM_FOC_Get()->out.s_FilterIdq.q);
 	}else if (plot_type == 6) {
 		can_plot2((s16)(PMSM_FOC_Get()->in.s_iABC[0]), (s16)(PMSM_FOC_Get()->in.s_iABC[1]));
 	}else if (plot_type == 7) {
-		can_plot2((s16)PMSM_FOC_Get()->out.s_RealIdq.d, (s16)PMSM_FOC_Get()->out.s_RealIdq.q);
+		#ifdef CONFIG_DQ_STEP_RESPONSE
+		can_plot2((s16)(target_d*10.0f), (s16)(PMSM_FOC_Get()->out.s_RealIdq.d * 10.0f));
+		#endif
+	}else if (plot_type == 8) {
+		#ifdef CONFIG_DQ_STEP_RESPONSE
+		can_plot2((s16)(target_q*10.0f), (s16)(PMSM_FOC_Get()->out.s_RealIdq.q * 10.0f));
+		#endif
 	}
 	
 	return 20;

+ 2 - 6
Applications/foc/commands.c

@@ -16,6 +16,7 @@
 extern float target_d;
 extern float target_q;
 #endif
+extern int plot_type;
 static void _reboot_timer_handler(shark_timer_t *);
 static shark_timer_t _reboot_timer = TIMER_INIT(_reboot_timer, _reboot_timer_handler);
 
@@ -427,12 +428,7 @@ static void process_foc_command(foc_cmd_body_t *command) {
 		}
 		case Foc_Set_Plot_Type:
 		{
-			u8 plot = decode_u8((u8 *)command->data);
-			if (plot >= Plot_t_Max) {
-				erroCode = FOC_Param_Err;
-			}else {
-				PMSM_FOC_Set_PlotType((Plot_t)plot);
-			}
+			plot_type = (int)decode_u8((u8 *)command->data);
 			break;
 		}
 		case Foc_Set_Throttle_throld:

+ 3 - 3
Applications/foc/limit.c

@@ -17,16 +17,16 @@ static void limiter_init(void) {
 		motor_temp_lim[i].enter_pointer = limiter->motor[i].enter_pointer;
 		motor_temp_lim[i].exit_pointer = limiter->motor[i].exit_pointer;
 		motor_temp_lim[i].limit_value = limiter->motor[i].limit_value;
-		//sys_debug("%d-%d-%d\n", motor_temp_lim[i].enter_pointer, motor_temp_lim[i].exit_pointer, motor_temp_lim[i].limit_value);
+		sys_debug("%d-%d-%d\n", motor_temp_lim[i].enter_pointer, motor_temp_lim[i].exit_pointer, motor_temp_lim[i].limit_value);
 		mos_temp_lim[i].enter_pointer = limiter->mos[i].enter_pointer;
 		mos_temp_lim[i].exit_pointer = limiter->mos[i].exit_pointer;
 		mos_temp_lim[i].limit_value = limiter->mos[i].limit_value;
-		//sys_debug("%d-%d-%d\n", mos_temp_lim[i].enter_pointer, mos_temp_lim[i].exit_pointer, mos_temp_lim[i].limit_value);
+		sys_debug("%d-%d-%d\n", mos_temp_lim[i].enter_pointer, mos_temp_lim[i].exit_pointer, mos_temp_lim[i].limit_value);
 	}
 	vol_under_lim[0].enter_pointer = limiter->vbus.enter_pointer;
 	vol_under_lim[0].exit_pointer = limiter->vbus.exit_pointer;
 	vol_under_lim[0].limit_value = limiter->vbus.limit_value;
-	//sys_debug("%d-%d-%d\n", vol_under_lim[0].enter_pointer, vol_under_lim[0].exit_pointer, vol_under_lim[0].limit_value);
+	sys_debug("%d-%d-%d\n", vol_under_lim[0].enter_pointer, vol_under_lim[0].exit_pointer, vol_under_lim[0].limit_value);
 }
 
 static u16 _temp_limiter(s16 temp, limter_t *lim) {