您好
我有一个以百分比形式表示占空比为整数的 PWM 生成(例如30%)
我希望占空比为十进制(例如30.5)。
我将使用来自 HET 的设置占空比函数。 C 驱动程序
void pwmSetDuty (hetRAMBASE_t * hetRAM、Uint32 PWM、uint32 pwmDuty)
{
UINT32操作;
UINT32 pwmPolarity =0u;
uint32 pwmPeriod = hetRAM->Instruction [(PWM << 1U)+ 42U].Data + 128U;
pwmPeriod = pwmPeriod >> 7u;
if (hetRAM == hetRAM1)
{
pwmPolarity = s_het1pwmPolarity [PWM];
}
否则
{
}
如果(pwmDuty == 0u)
{
行动=(pwmPolarity== 3U)? 0u:2u;
}
否则、如果(pwmDuty >= 100U)
{
行动=(pwmPolarity== 3U)? 2u:0u;
}
否则
{
作用= pwmPolarity;
}
hetRAM->Instruction [(PWM << 1U)+ 41U].Control =((hetRAM->Instruction [(PWM << 1U)+ 41U].Control)&(~(UINT32)(0x00000018U))|(操作<< 3U);
hetRAM->Instruction [(PWM <<1U)+ 41U].Data =(((pwmPeriod * pwmDuty)/100U)<< 7U)+ 128U;
}
我将使用周期10kHz。
如何修改设置的占空比?
谢谢
法比奥
