主题中讨论的其他器件:DRV832X
您好!
我 需要使用 F280037c 的通用电机控制实验室设置在6x PWM 模式下控制某些栅极驱动器。
我选择了使用通用电机控制实验(而不是通用电机控制 SYSCFG 工具)、因为实验的设置非常接近我的定制板。
此实验已成功运行、但我怀疑我在 PWM 模式配置中遇到了问题。
它看起来像基于这些 PWM 动作限定器配置的3x PWM 设置。
通用电机控制实验室使用自定义代码(与原始实验非常相似、仅合并了一个位)
void HAL_setupPWMs(HAL_MTR_Handle handle)
{
HAL_MTR_Obj *obj = (HAL_MTR_Obj *)handle;
uint16_t cnt;
uint16_t pwmPeriodCycles = (uint16_t)(USER_M1_PWM_TBPRD_NUM);
uint16_t numPWMTicksPerISRTick = USER_M1_NUM_PWM_TICKS_PER_ISR_TICK;
// disable the ePWM module time base clock sync signal
// to synchronize all of the PWMs
SysCtl_disablePeripheral(SYSCTL_PERIPH_CLK_TBCLKSYNC);
// turns off the outputs of the EPWM peripherals which will put the power
// switches into a high impedance state.
EPWM_forceTripZoneEvent(obj->pwmHandle[0], EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(obj->pwmHandle[1], EPWM_TZ_FORCE_EVENT_OST);
EPWM_forceTripZoneEvent(obj->pwmHandle[2], EPWM_TZ_FORCE_EVENT_OST);
for(cnt=0; cnt<3; cnt++)
{
// setup the Time-Base Control Register (TBCTL)
EPWM_setTimeBaseCounterMode(obj->pwmHandle[cnt], EPWM_COUNTER_MODE_UP_DOWN);
EPWM_disablePhaseShiftLoad(obj->pwmHandle[cnt]);
EPWM_setPeriodLoadMode(obj->pwmHandle[cnt], EPWM_PERIOD_DIRECT_LOAD);
EPWM_enableSyncOutPulseSource(obj->pwmHandle[cnt], EPWM_SYNC_OUT_PULSE_ON_SOFTWARE);
EPWM_setClockPrescaler(obj->pwmHandle[cnt], EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
EPWM_setCountModeAfterSync(obj->pwmHandle[cnt], EPWM_COUNT_MODE_UP_AFTER_SYNC);
EPWM_setEmulationMode(obj->pwmHandle[cnt], EPWM_EMULATION_FREE_RUN);
EPWM_setPhaseShift(obj->pwmHandle[cnt], 0); // setup the Timer-Based Phase Register (TBPHS)
EPWM_setTimeBaseCounter(obj->pwmHandle[cnt], 0); // setup the Time-Base Counter Register (TBCTR)
EPWM_setTimeBasePeriod(obj->pwmHandle[cnt], 0);// setup the Time-Base Period Register (TBPRD) to zero initially
EPWM_setCounterCompareShadowLoadMode(obj->pwmHandle[cnt], EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO); // setup the Counter-Compare Control Register (CMPCTL)
EPWM_setCounterCompareShadowLoadMode(obj->pwmHandle[cnt], EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(obj->pwmHandle[cnt], EPWM_COUNTER_COMPARE_C, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareShadowLoadMode(obj->pwmHandle[cnt], EPWM_COUNTER_COMPARE_D, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA); // setup the Action-Qualifier Output A Register (AQCTLA)
EPWM_setActionQualifierAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(obj->pwmHandle[cnt], EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setDeadBandDelayMode(obj->pwmHandle[cnt], EPWM_DB_RED, true); // setup the Dead-Band Generator Control Register (DBCTL)
EPWM_setDeadBandDelayMode(obj->pwmHandle[cnt], EPWM_DB_FED, true);
EPWM_setRisingEdgeDeadBandDelayInput(obj->pwmHandle[cnt], EPWM_DB_INPUT_EPWMA); // select EPWMA as the input to the dead band generator
EPWM_setDeadBandDelayPolarity(obj->pwmHandle[cnt], EPWM_DB_RED, EPWM_DB_POLARITY_ACTIVE_HIGH); // configure the right polarity for active high complementary config.
EPWM_setDeadBandDelayPolarity(obj->pwmHandle[cnt], EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setRisingEdgeDelayCount(obj->pwmHandle[cnt], MTR1_PWM_DBRED_CNT); // setup the Dead-Band Rising Edge Delay Register (DBRED)
EPWM_setFallingEdgeDelayCount(obj->pwmHandle[cnt], MTR1_PWM_DBFED_CNT); // setup the Dead-Band Falling Edge Delay Register (DBFED)
EPWM_disableChopper(obj->pwmHandle[cnt]); // setup the PWM-Chopper Control Register (PCCTL)
EPWM_disableTripZoneSignals(obj->pwmHandle[cnt], HAL_TZSEL_SIGNALS_ALL); // setup the Trip Zone Select Register (TZSEL)
}
// setup the Event Trigger Prescale Register (ETPS)
if(numPWMTicksPerISRTick > 15)
{
numPWMTicksPerISRTick = 15;
}
else if(numPWMTicksPerISRTick < 1)
{
numPWMTicksPerISRTick = 1;
}
// setup the Event Trigger Selection Register (ETSEL)
EPWM_setInterruptSource(obj->pwmHandle[0], EPWM_INT_TBCTR_ZERO);
EPWM_enableInterrupt(obj->pwmHandle[0]);
EPWM_enableSyncOutPulseSource(obj->pwmHandle[0], EPWM_SYNC_OUT_PULSE_ON_CNTR_ZERO); // sync "down-stream"
我怀疑动作限定器设置仅针对每个 PWM 对的输出 A 进行设置、我认为 A 和 B 都需要设置为6x PWM 模式。
我在代码或文档中找不到选择了6x vs 3x vs 1x PWM 模式的任何位置。
此外、在通用电机控制 SYSCFG 输出(我进行了调整)中、它确实设置了 A 和 B PWM 输出:
生成的通用电机控制 SYSCFG PWM INIT:
//*****************************************************************************
//
// EPWM Configurations
//
//*****************************************************************************
void EPWM_init(){
EPWM_setClockPrescaler(WheelPWMrev_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_2);
EPWM_setTimeBasePeriod(WheelPWMrev_BASE, 0);
EPWM_setTimeBaseCounter(WheelPWMrev_BASE, 0);
EPWM_setTimeBaseCounterMode(WheelPWMrev_BASE, EPWM_COUNTER_MODE_STOP_FREEZE);
EPWM_disablePhaseShiftLoad(WheelPWMrev_BASE);
EPWM_setPhaseShift(WheelPWMrev_BASE, 0);
EPWM_setCounterCompareValue(WheelPWMrev_BASE, EPWM_COUNTER_COMPARE_A, 0);
EPWM_setCounterCompareShadowLoadMode(WheelPWMrev_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(WheelPWMrev_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(WheelPWMrev_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(WheelPWMrev_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setRisingEdgeDelayCountShadowLoadMode(WheelPWMrev_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCountShadowLoadMode(WheelPWMrev_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(WheelPWMrev_BASE);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(WheelPWMrev_BASE);
EPWM_setClockPrescaler(WheelPWM_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_2);
EPWM_setTimeBasePeriod(WheelPWM_BASE, 0);
EPWM_setTimeBaseCounter(WheelPWM_BASE, 0);
EPWM_setTimeBaseCounterMode(WheelPWM_BASE, EPWM_COUNTER_MODE_STOP_FREEZE);
EPWM_disablePhaseShiftLoad(WheelPWM_BASE);
EPWM_setPhaseShift(WheelPWM_BASE, 0);
EPWM_setCounterCompareValue(WheelPWM_BASE, EPWM_COUNTER_COMPARE_A, 0);
EPWM_setCounterCompareShadowLoadMode(WheelPWM_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(WheelPWM_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(WheelPWM_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(WheelPWM_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setRisingEdgeDelayCountShadowLoadMode(WheelPWM_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCountShadowLoadMode(WheelPWM_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(WheelPWM_BASE);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(WheelPWM_BASE);
EPWM_setEmulationMode(MTR1_EPWM_U_BASE, EPWM_EMULATION_FREE_RUN);
EPWM_setClockPrescaler(MTR1_EPWM_U_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod(MTR1_EPWM_U_BASE, 0);
EPWM_setTimeBaseCounter(MTR1_EPWM_U_BASE, 0);
EPWM_setTimeBaseCounterMode(MTR1_EPWM_U_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_setCountModeAfterSync(MTR1_EPWM_U_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);
EPWM_disablePhaseShiftLoad(MTR1_EPWM_U_BASE);
EPWM_setPhaseShift(MTR1_EPWM_U_BASE, 0);
EPWM_setCounterCompareValue(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_A, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_C, 5);
EPWM_setCounterCompareValue(MTR1_EPWM_U_BASE, EPWM_COUNTER_COMPARE_D, 5);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_U_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setDeadBandDelayPolarity(MTR1_EPWM_U_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode(MTR1_EPWM_U_BASE, EPWM_DB_RED, true);
EPWM_setRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_U_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setRisingEdgeDelayCount(MTR1_EPWM_U_BASE, 10);
EPWM_setDeadBandDelayMode(MTR1_EPWM_U_BASE, EPWM_DB_FED, true);
EPWM_setFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_U_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCount(MTR1_EPWM_U_BASE, 10);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_U_BASE);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_U_BASE);
EPWM_enableTripZoneSignals(MTR1_EPWM_U_BASE, EPWM_TZ_SIGNAL_DCAEVT1 | EPWM_TZ_SIGNAL_DCBEVT1 | EPWM_TZ_SIGNAL_OSHT1);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_U_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_U_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_U_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_U_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_U_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_U_BASE, EPWM_TZ_DC_OUTPUT_A2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_U_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_U_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_U_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_U_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_U_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_U_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_U_BASE, EPWM_TZ_DC_OUTPUT_B1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_U_BASE, EPWM_TZ_DC_OUTPUT_B2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_U_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_U_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_enableInterrupt(MTR1_EPWM_U_BASE);
EPWM_setInterruptSource(MTR1_EPWM_U_BASE, EPWM_INT_TBCTR_ZERO);
EPWM_setInterruptEventCount(MTR1_EPWM_U_BASE, 1);
EPWM_enableADCTrigger(MTR1_EPWM_U_BASE, EPWM_SOC_A);
EPWM_setADCTriggerSource(MTR1_EPWM_U_BASE, EPWM_SOC_A, EPWM_SOC_TBCTR_D_CMPC);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_U_BASE, EPWM_SOC_A, 1);
EPWM_enableADCTrigger(MTR1_EPWM_U_BASE, EPWM_SOC_B);
EPWM_setADCTriggerSource(MTR1_EPWM_U_BASE, EPWM_SOC_B, EPWM_SOC_TBCTR_D_CMPD);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_U_BASE, EPWM_SOC_B, 1);
EPWM_setEmulationMode(MTR1_EPWM_V_BASE, EPWM_EMULATION_FREE_RUN);
EPWM_setClockPrescaler(MTR1_EPWM_V_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod(MTR1_EPWM_V_BASE, 0);
EPWM_setTimeBaseCounter(MTR1_EPWM_V_BASE, 0);
EPWM_setTimeBaseCounterMode(MTR1_EPWM_V_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_setCountModeAfterSync(MTR1_EPWM_V_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);
EPWM_disablePhaseShiftLoad(MTR1_EPWM_V_BASE);
EPWM_setPhaseShift(MTR1_EPWM_V_BASE, 0);
EPWM_setCounterCompareValue(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_A, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_C, 5);
EPWM_setCounterCompareValue(MTR1_EPWM_V_BASE, EPWM_COUNTER_COMPARE_D, 5);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_V_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setDeadBandDelayPolarity(MTR1_EPWM_V_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode(MTR1_EPWM_V_BASE, EPWM_DB_RED, true);
EPWM_setRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_V_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setRisingEdgeDelayCount(MTR1_EPWM_V_BASE, 10);
EPWM_setDeadBandDelayMode(MTR1_EPWM_V_BASE, EPWM_DB_FED, true);
EPWM_setFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_V_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCount(MTR1_EPWM_V_BASE, 10);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_V_BASE);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_V_BASE);
EPWM_enableTripZoneSignals(MTR1_EPWM_V_BASE, EPWM_TZ_SIGNAL_DCAEVT1 | EPWM_TZ_SIGNAL_DCBEVT1 | EPWM_TZ_SIGNAL_OSHT1);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_V_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_V_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_V_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_V_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_V_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_V_BASE, EPWM_TZ_DC_OUTPUT_A2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_V_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_V_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_V_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_V_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_V_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_V_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_V_BASE, EPWM_TZ_DC_OUTPUT_B1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_V_BASE, EPWM_TZ_DC_OUTPUT_B2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_V_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_V_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_enableInterrupt(MTR1_EPWM_V_BASE);
EPWM_setInterruptSource(MTR1_EPWM_V_BASE, EPWM_INT_TBCTR_ZERO);
EPWM_setInterruptEventCount(MTR1_EPWM_V_BASE, 1);
EPWM_enableADCTrigger(MTR1_EPWM_V_BASE, EPWM_SOC_A);
EPWM_setADCTriggerSource(MTR1_EPWM_V_BASE, EPWM_SOC_A, EPWM_SOC_TBCTR_D_CMPC);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_V_BASE, EPWM_SOC_A, 1);
EPWM_enableADCTrigger(MTR1_EPWM_V_BASE, EPWM_SOC_B);
EPWM_setADCTriggerSource(MTR1_EPWM_V_BASE, EPWM_SOC_B, EPWM_SOC_TBCTR_D_CMPD);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_V_BASE, EPWM_SOC_B, 1);
EPWM_setEmulationMode(MTR1_EPWM_W_BASE, EPWM_EMULATION_FREE_RUN);
EPWM_setClockPrescaler(MTR1_EPWM_W_BASE, EPWM_CLOCK_DIVIDER_1, EPWM_HSCLOCK_DIVIDER_1);
EPWM_setTimeBasePeriod(MTR1_EPWM_W_BASE, 0);
EPWM_setTimeBaseCounter(MTR1_EPWM_W_BASE, 0);
EPWM_setTimeBaseCounterMode(MTR1_EPWM_W_BASE, EPWM_COUNTER_MODE_UP_DOWN);
EPWM_setCountModeAfterSync(MTR1_EPWM_W_BASE, EPWM_COUNT_MODE_UP_AFTER_SYNC);
EPWM_disablePhaseShiftLoad(MTR1_EPWM_W_BASE);
EPWM_setPhaseShift(MTR1_EPWM_W_BASE, 0);
EPWM_setCounterCompareValue(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_A, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_A, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_B, 0);
EPWM_setCounterCompareShadowLoadMode(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_B, EPWM_COMP_LOAD_ON_CNTR_ZERO);
EPWM_setCounterCompareValue(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_C, 5);
EPWM_setCounterCompareValue(MTR1_EPWM_W_BASE, EPWM_COUNTER_COMPARE_D, 5);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_HIGH, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_LOW, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_A, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_ZERO);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_PERIOD);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPA);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_UP_CMPB);
EPWM_setActionQualifierAction(MTR1_EPWM_W_BASE, EPWM_AQ_OUTPUT_B, EPWM_AQ_OUTPUT_NO_CHANGE, EPWM_AQ_OUTPUT_ON_TIMEBASE_DOWN_CMPB);
EPWM_setDeadBandDelayPolarity(MTR1_EPWM_W_BASE, EPWM_DB_FED, EPWM_DB_POLARITY_ACTIVE_LOW);
EPWM_setDeadBandDelayMode(MTR1_EPWM_W_BASE, EPWM_DB_RED, true);
EPWM_setRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_W_BASE, EPWM_RED_LOAD_ON_CNTR_ZERO);
EPWM_setRisingEdgeDelayCount(MTR1_EPWM_W_BASE, 10);
EPWM_setDeadBandDelayMode(MTR1_EPWM_W_BASE, EPWM_DB_FED, true);
EPWM_setFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_W_BASE, EPWM_FED_LOAD_ON_CNTR_ZERO);
EPWM_setFallingEdgeDelayCount(MTR1_EPWM_W_BASE, 10);
EPWM_disableRisingEdgeDelayCountShadowLoadMode(MTR1_EPWM_W_BASE);
EPWM_disableFallingEdgeDelayCountShadowLoadMode(MTR1_EPWM_W_BASE);
EPWM_enableTripZoneSignals(MTR1_EPWM_W_BASE, EPWM_TZ_SIGNAL_DCAEVT1 | EPWM_TZ_SIGNAL_DCBEVT1 | EPWM_TZ_SIGNAL_OSHT1);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_W_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_W_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_W_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCAL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_W_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCAL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_W_BASE, EPWM_TZ_DC_OUTPUT_A1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_W_BASE, EPWM_TZ_DC_OUTPUT_A2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_W_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_W_BASE, EPWM_DC_MODULE_A, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_W_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBH);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_W_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBH);
EPWM_selectDigitalCompareTripInput(MTR1_EPWM_W_BASE, EPWM_DC_TRIP_COMBINATION, EPWM_DC_TYPE_DCBL);
EPWM_enableDigitalCompareTripCombinationInput(MTR1_EPWM_W_BASE, EPWM_DC_COMBINATIONAL_TRIPIN7, EPWM_DC_TYPE_DCBL);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_W_BASE, EPWM_TZ_DC_OUTPUT_B1, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setTripZoneDigitalCompareEventCondition(MTR1_EPWM_W_BASE, EPWM_TZ_DC_OUTPUT_B2, EPWM_TZ_EVENT_DCXH_HIGH);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_W_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_1, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_setDigitalCompareEventSource(MTR1_EPWM_W_BASE, EPWM_DC_MODULE_B, EPWM_DC_EVENT_2, EPWM_DC_EVENT_SOURCE_FILT_SIGNAL);
EPWM_enableInterrupt(MTR1_EPWM_W_BASE);
EPWM_setInterruptSource(MTR1_EPWM_W_BASE, EPWM_INT_TBCTR_ZERO);
EPWM_setInterruptEventCount(MTR1_EPWM_W_BASE, 1);
EPWM_enableADCTrigger(MTR1_EPWM_W_BASE, EPWM_SOC_A);
EPWM_setADCTriggerSource(MTR1_EPWM_W_BASE, EPWM_SOC_A, EPWM_SOC_TBCTR_D_CMPC);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_W_BASE, EPWM_SOC_A, 1);
EPWM_enableADCTrigger(MTR1_EPWM_W_BASE, EPWM_SOC_B);
EPWM_setADCTriggerSource(MTR1_EPWM_W_BASE, EPWM_SOC_B, EPWM_SOC_TBCTR_D_CMPD);
EPWM_setADCTriggerEventPrescale(MTR1_EPWM_W_BASE, EPWM_SOC_B, 1);
}
如何正确设置6x PMW 模式?
我仍在搜索电机控制实验室和文档...
编辑:为了 清楚起见、我在电机控制 SDK 5.0中提到这些项目:







