Преглед изворни кода

通过采样点的判断,使用什么样的触发方式

Signed-off-by: huhui <huhui@sharkgulf.com>
huhui пре 4 година
родитељ
комит
511a241d54
3 измењених фајлова са 13 додато и 2 уклоњено
  1. 11 0
      Applications/bsp/pwm.c
  2. 1 0
      Applications/bsp/pwm.h
  3. 1 2
      Applications/foc/core/foc_core.c

+ 11 - 0
Applications/bsp/pwm.c

@@ -385,6 +385,17 @@ void pwm_turn_on_low_side(void)
 #endif
 }
 
+void pwm_update_sample(u32 samp1, u32 samp2, u8 sector) {
+	pwm_update_2smaples(samp1, samp2);
+#ifdef ENABLE_AUX_TIMER
+	if (samp2 < FOC_PWM_Half_Period) {
+		adc_update_ext_trigger(ADC_TRIGGER_PHASE);
+	}else {
+		adc_update_ext_trigger(ADC_TRIGGER_PHASE2);
+	}
+#endif	
+	adc_current_sample_config(sector);
+}
 
 __weak void foc_brake_handler(bool brake) {
 	//dumy function, must implemented in FOC controller

+ 1 - 0
Applications/bsp/pwm.h

@@ -69,6 +69,7 @@ void pwm_start(void);
 void pwm_stop(void);
 void pwm_turn_on_low_side(void);
 void pwm_enable_output(bool enable);
+void pwm_update_sample(u32 samp1, u32 samp2, u8 sector);
 
 #endif  /*_PWM_H__*/
 

+ 1 - 2
Applications/foc/core/foc_core.c

@@ -27,8 +27,7 @@ static __INLINE void PMSM_FOC_PWMCurrent_Update(void) {
 	
 	pwm_update_duty(pmsm_foc.FOC_Out->PWM[0], pmsm_foc.FOC_Out->PWM[1], pmsm_foc.FOC_Out->PWM[2]);
 	
-	pwm_update_2smaples(cs->time.Samp_p1, cs->time.Samp_p2);
-	adc_current_sample_config(cs->sector);
+	pwm_update_sample(cs->time.Samp_p1, cs->time.Samp_p2, cs->sector);
 }
 
 static __INLINE void PMSM_FOC_Controller(void) {