如题,采用instaspinFoc,用的是motorware的例程,但是不知道在哪里设置死区时间。
Eric Ma:
采用instaspinFoc,用的是motorware的例程,但是不知道在哪里设置死区时间
ERIC:
逻辑就是,设置死区时间,就是要去PWM初始化的地方去看,在hal.c里面的PWM函数
void HAL_setupPwms(HAL_Handle handle, const uint_least16_t systemFreq_MHz, const float_t pwmPeriod_usec, const uint_least16_t numPwmTicksPerIsrTick)
// setup the Dead-Band Rising Edge Delay Register (DBRED) PWM_setDeadBandRisingEdgeDelay(obj->pwmHandle[cnt],HAL_PWM_DBRED_CNT);
// setup the Dead-Band Falling Edge Delay Register (DBFED) PWM_setDeadBandFallingEdgeDelay(obj->pwmHandle[cnt],HAL_PWM_DBFED_CNT);
如题,采用instaspinFoc,用的是motorware的例程,但是不知道在哪里设置死区时间。
Linda:
回复 Eric Ma:
您好!
在hal.h文件的以下位置可以设置死区时间的值:
//! \brief Defines the PWM deadband falling edge delay count (system clocks)//!#define HAL_PWM_DBFED_CNT (uint16_t)(2.0 * (float_t)USER_SYSTEM_FREQ_MHz) // 2 usec
//! \brief Defines the PWM deadband rising edge delay count (system clocks)//!#define HAL_PWM_DBRED_CNT (uint16_t)(2.0 * (float_t)USER_SYSTEM_FREQ_MHz) // 2 usec