你好
我最近学习了 UCD3138全桥硬开关开发板固件
我遇到了问题
我对函数内联 void frequency (void)感到困惑
内联 void frequency 开关(void)
{
if (perspoid_new > perspoid_old)//
//perspoid_old = PMBus_DCDC_CONFIG[0].period;
//perspoid_new = PMBus_DCDC_CONFIG[0].period;
{
PMBus_DCDC_CONFIG[0].PERIOD = PERARE_OLD + 1;//
perspoid_old ++;
CONFIG_VOUT_RAMP_RATE ();
CONFIG_TON_RISE ();
init_dpwm0();
init_dpwm1();
CONFIG_DPWM_时序();
LoopMuxRegs.PWMGLBPER.ALL = PMBus_DCDC_CONFIG[0].PERIOD;
Filter2Regs.FILTEROCLPHI.bit.output_CLAMP 高电平= PMBus_DCDC_CONFIG[0]。period * 1;//最大容限为100%
Filter2Regs.FILTEROCLPLA.bit.output_clamp 低电平= PMBus_DCDC_CONFIG[0].PERIOD * 0.4;
Filter0Regs.FILTEROCLPHI.bit.output_CLAMP 高电平=(PMBus_DCDC_CONFIG[0].PERIOD >> 1)- 500;//钳位至50%占空比- 500 * 250ps
Filter1Regs.FILTEROCLPHI.bit.output_CLAMP 高电平=(PMBus_DCDC_CONFIG[0].PERIOD >> 1)- 500;//钳位至50%占空比- 500 * 250ps
LoopMuxRegs.FILTERKCOMPA.bit.KCOMP0 =(3 * PMBus_DCDC_CONFIG[0].PERIOD)>> 6;
LoopMuxRegs.FILTERKCOMPB.bit.KCOMP2 = PMBus_DCDC_CONFIG[0].PERIOD >> 4;//输入4ns
}
if (perspoid_new < perspoid_old)
{
PMBus_DCDC_CONFIG[0].PERIOD = PERARE_OLD - 1;//
perspoid_old --;
CONFIG_VOUT_RAMP_RATE ();
CONFIG_TON_RISE ();
init_dpwm0();
init_dpwm1();
CONFIG_DPWM_时序();
LoopMuxRegs.PWMGLBPER.ALL = PMBus_DCDC_CONFIG[0].PERIOD;
Filter2Regs.FILTEROCLPHI.bit.output_CLAMP 高电平= PMBus_DCDC_CONFIG[0]。period * 1;//最大容限为100%
Filter2Regs.FILTEROCLPLA.bit.output_clamp 低电平= PMBus_DCDC_CONFIG[0].PERIOD * 0.4;
Filter0Regs.FILTEROCLPHI.bit.output_CLAMP 高电平=(PMBus_DCDC_CONFIG[0].PERIOD >> 1)- 500;//钳位至50%占空比- 500 * 250ps
Filter1Regs.FILTEROCLPHI.bit.output_CLAMP 高电平=(PMBus_DCDC_CONFIG[0].PERIOD >> 1)- 500;//钳位至50%占空比- 500 * 250ps
LoopMuxRegs.FILTERKCOMPA.bit.KCOMP0 =(3 * PMBus_DCDC_CONFIG[0].PERIOD)>> 6;
LoopMuxRegs.FILTERKCOMPB.bit.KCOMP2 = PMBus_DCDC_CONFIG[0].PERIOD >> 4;//输入4ns
}
}
我认为该函数用于更改开关周期。
当上部计算机发出的新周期大于旧周期时,该周期将增加。
当上部计算机发出的新周期小于旧周期时、周期会减少。
周期的增加或减少是一个单位的增加或减少、而不是直接增加或减少到一个新值。 这种渐进的变化比突变好。
但是,我不理解为什么在函数中使用“if”语句,而不是“for”语句。 我认为,如果“if”语句的旧周期只能增加或减少1个单元,则不能增加或减少到新的周期。
不知道我的理解是正确的? 或者程序中是否有循环加法和减法的函数、但我不知道在哪里。
谢谢你