Part Number: TMS320F28P550SJ
参考TMS320F28P550x例程,DBFEDHR配置是这样写的
HRPWM_setHiResRisingEdgeDelayOnly(uint32_t base,uint16_t hrRedCount)
{
ASSERT(HRPWM_isBaseValid(base));
ASSERT(hrRedCount<128U);
HWREGH(base+HRPWM_O_DBFEDHR)=hrRedCount<<9U)
}
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Part Number: TMS320F28P550SJ
参考TMS320F28P550x例程,DBFEDHR配置是这样写的
HRPWM_setHiResRisingEdgeDelayOnly(uint32_t base,uint16_t hrRedCount)
{
ASSERT(HRPWM_isBaseValid(base));
ASSERT(hrRedCount<128U);
HWREGH(base+HRPWM_O_DBFEDHR)=hrRedCount<<9U)
}
简而言之,hrRedCount应该移动9位。
high-resolution dead-band count通常是7位(0-127),位于寄存器高字节的第15-9位中。当HRPWM启用以实现high-resolution dead band控制时,硬件通常会忽略完整16位寄存器的最低9位(第8-0位)。

要将一个7位值(基于ASSERT(hrRedCount<128U))从第9位开始放置在正确位置,必须向左移9位。TRM中对8位左移的描述是将高分辨率值移入完整16位寄存器高字节区域的概念性解释,但具体需要9位移位。