|
发表于 2011-11-28 23:03:26
|
显示全部楼层
先向春风请教电源的程序问题,
*************************************
* 函数名称: SetRL(float x)
* 功 能: 根据输出电压来控制继电器设置AC输入电压
//void SetRL(float x)
//{
// RL2V_OFF();
// RL4V_OFF();
// RL8V_OFF();
// RL16V_OFF();
// x = (x / 1.2 ) + 2 + 2; //一个2V是整流桥消耗压降,另一个2V是增加的电压差,因为市电有波动,得留出足够的余量来保证正常稳压
// 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();
// }
//}
/*********************************************************************************
* 函数名称: SetDacU()
* 功 能: 输入浮点数电压转换成12位数据送DA
* 参 数: 无
* 返回值 : 无
**********************************************************************************/
vu16 SetDacU(float x)
{
float temp;
u16 i;
temp = (30.00 - 0.10) / ((float)(DAUcal30 - DAUcal01));//计算系数,每LSB电压值
if(x >= 0.1) //把低于0.1V电压单独计算
{
temp = (x - 0.100) / (float)temp;
i = (u16)temp + DAUcal01;
}
else
{
temp = (x) / temp;
i = (u16)temp;
}
if(i > 4095) i = 4095;
DAC_SetChannel1Data(DAC_Align_12b_R, i); //12位电压数据送DAC
// SetRL(x);
return i;
}
为什么我屏闭了这程序后我才能使用(改用单组电源供电不经继电器)自己的程序,不了解啊!
if(Key5Sign)//键5标志----------------------------------步进加
{
Key5Sign = 0;
Key6Sign = 0;
if(z == 0)
{if(Hv <= 880) Hv = Hv + 2;i = Hv;p=15;}
if(z == 1)
{if(Lv <= 580) Lv = Lv + 2;i = Lv;p=12;}
if(z == 2)
{if(Sv < 20) Sv = Sv + 1;i = Sv;p=14;}
if(z == 3)
{if(St <= 20) St = St + 1;i = St;p=26;}
DispBuff[0] = (u8)(i / 1000);
i = i % 1000;
DispBuff[1] = (u8)(i / 100);
i = i % 100;
DispBuff[2] = (u8)(i / 10);
i = i % 10;
DispBuff[3] = (u8)(i / 1);
DispBuff[4] = p;//------
DispBuff[5] = p;//------
DispBuff[6] = p;//------
DispBuff[7] = p;//------
delayI(5);
}
if (Key1Sign)
{
e=1;
Key1Sign = 0;
Key2Sign = 0;
z++;
} |
|