Ver Fonte

3相桥测试,只支持互补输出

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui há 3 anos atrás
pai
commit
ba5226578d
3 ficheiros alterados com 18 adições e 15 exclusões
  1. 4 0
      Applications/app/factory.c
  2. 1 1
      Applications/app/factory.h
  3. 13 14
      Applications/bsp/gd32/pwm.c

+ 4 - 0
Applications/app/factory.c

@@ -77,3 +77,7 @@ u8 factory_get_mode(void) {
 	return factory_mode;
 }
 
+bool factory_is_running(void) {
+	return (factory_mode == 0);
+}
+

+ 1 - 1
Applications/app/factory.h

@@ -3,6 +3,6 @@
 #include "prot/can_message.h"
 
 void can_process_factory_message(can_message_t *can_message);
-
+bool factory_is_running(void);
 
 #endif /* _FACTORY_H__ */

+ 13 - 14
Applications/bsp/gd32/pwm.c

@@ -54,35 +54,34 @@ void pwm_3phase_sides(u8 mask) {
     gpio_init(PWM_W_N_GROUP,GPIO_MODE_OUT_PP,GPIO_OSPEED_50MHZ,PWM_W_N_PIN);
 
 	sys_debug("pwm_3phase_sides\n");
+	gpio_bit_write(PWM_U_P_GROUP, PWM_U_P_PIN, RESET);
+	gpio_bit_write(PWM_V_P_GROUP, PWM_V_P_PIN, RESET);
+	gpio_bit_write(PWM_W_P_GROUP, PWM_W_P_PIN, RESET);
+	gpio_bit_write(PWM_U_N_GROUP, PWM_U_N_PIN, RESET);
+	gpio_bit_write(PWM_V_N_GROUP, PWM_V_N_PIN, RESET);
+	gpio_bit_write(PWM_W_N_GROUP, PWM_W_N_PIN, RESET);
+	delay_us(1);
+	
 	if (mask & 0x01) {
 		gpio_bit_write(PWM_U_P_GROUP, PWM_U_P_PIN, SET);
+		gpio_bit_write(PWM_U_N_GROUP, PWM_U_N_PIN, RESET);
 	}else {
 		gpio_bit_write(PWM_U_P_GROUP, PWM_U_P_PIN, RESET);
+		gpio_bit_write(PWM_U_N_GROUP, PWM_U_N_PIN, SET);
 	}
 	if (mask & 0x02) {
 		gpio_bit_write(PWM_V_P_GROUP, PWM_V_P_PIN, SET);
+		gpio_bit_write(PWM_V_N_GROUP, PWM_V_N_PIN, RESET);
 	}else {
 		gpio_bit_write(PWM_V_P_GROUP, PWM_V_P_PIN, RESET);
+		gpio_bit_write(PWM_V_N_GROUP, PWM_V_N_PIN, SET);
 	}
 	if (mask & 0x04) {
 		gpio_bit_write(PWM_W_P_GROUP, PWM_W_P_PIN, SET);
+		gpio_bit_write(PWM_W_N_GROUP, PWM_W_N_PIN, RESET);
 	}else {
 		gpio_bit_write(PWM_W_P_GROUP, PWM_W_P_PIN, RESET);
-	}
-	if (mask & 0x10) {
-		gpio_bit_write(PWM_U_N_GROUP, PWM_U_N_PIN, SET);
-	}else {
-		gpio_bit_write(PWM_U_N_GROUP, PWM_U_N_PIN, RESET);
-	}
-	if (mask & 0x20) {
-		gpio_bit_write(PWM_V_N_GROUP, PWM_V_N_PIN, SET);
-	}else {
-		gpio_bit_write(PWM_V_N_GROUP, PWM_V_N_PIN, RESET);
-	}
-	if (mask & 0x40) {
 		gpio_bit_write(PWM_W_N_GROUP, PWM_W_N_PIN, SET);
-	}else {
-		gpio_bit_write(PWM_W_N_GROUP, PWM_W_N_PIN, RESET);
 	}
 }