wyf-锋 发表于 2014-7-5 21:34:06

春风电源第二版程序问题

void SetRL(float x)
{
RL2V_OFF();
        RL4V_OFF();
        RL8V_OFF();
        RL16V_OFF();
        x = (x / 1.2 ) + 2.2 + 4;
        if(x >= 16)   
        {
          x = x - 16;
          RL16V_ON();
        }
        if(x >= 8)   
        {
          x = x - 8;
          RL8V_ON();
        }
        if(x >= 4)   
        {
          x = x - 4;
          RL4V_ON();
        }
        if(x >= 2)   
        {
          x = x - 2;
          RL2V_ON();
        }
}

这是继电器的切换程序 我想知道1.2 2.2 4都代表什么 为什么X都要减去相应的数(如x=x-8)

xueju 发表于 2014-11-5 10:13:26

比如:如果设定输出电压是30V, 那就是选加16V,然后看剩下电压是多少这里是30-16=14V, 那就再加上8V 剩下14-8=6V 那就再加上4V 剩2V,那就再加上2V。这样所有继电器打开刚好30V。 当然30V的交流经滤波整流后是30*1.14=34.2,或许还高了(或许还不够,要看变压器绕的情况进行修正,电流大了变压器输出会降一点的,最好要测试过)。

x = (x / 1.2 ) + 2.2 + 4;  我想这里是经过设计的,目的有两个,一是根据自己的变压器情况调整的,二是为了避开整数点附近切换继电器吧,

liangying 发表于 2014-11-17 22:19:43

哦,这个是计算切换继电器的,
页: [1]
查看完整版本: 春风电源第二版程序问题