📄 calvol.c
字号:
#include "calVol.h"
/*************************************求采样电压初始化函数****************************************
**入口:无
**出口:无
**读取E2PROM中的基准电压值,放大倍数,终止电压
********************************************************************************************/
void CalVolt_initial(void)
{
uint8 tmpCtr,tmpCtr2; //循环控制
baseVolt=eeprom_read(AddrL_BaseVolt)+eeprom_read(AddrH_BaseVolt)*255; //基准电压
Amp=eeprom_read(AddrE2Amp); //放大倍数
//读取终止电压
for(tmpCtr=0;tmpCtr<EmerChnNum;tmpCtr++)
{
EmerVolt[tmpCtr][0]=eeprom_read(TableAddrE2EachEmerVolt[tmpCtr][0])+eeprom_read(TableAddrE2EachEmerVolt[tmpCtr][1])*255;
}
}
/*************************************求取采样电压函数**********************************
入口:SapDigitial-采样电压的数字量,Amp-放大器的放大倍数(1或者4)
**出口:采样电压的实际值放大100倍后的值
**返回值=baseVolt*SapDigitial*Amp/1023
**AD采样精度为10位
********************************************************************************************/
uint16 CalSapVolt(uint16 SapDigitial)
{
return (baseVolt*SapDigitial*Amp/1023);
}
/******************************存储终止电压******************************
**入口:chnNo-通道号(0-3),SapDigtial-采样电压数字量
**出口:无
**将终止电压转换成实际值放大100倍后的值存入EmerVolt[EmerChnNum][1]
************************************************************************/
void SaveEmerVolt(uint8 chnNo,uint16 SapDigitial)
{
EmerVolt[chnNo][0]=CalSapVolt(SapDigitial);
eeprom_write(TableAddrE2EachEmerVolt[chnNo][0],lobyte(EmerVolt[chnNo][0]));
eeprom_write(TableAddrE2EachEmerVolt[chnNo][1],hibyte(EmerVolt[chnNo][0]));
}
/**********************存储基准电压************************
**入口: 基准电压放大100倍的值
**出口:无
** 改变基准电压,并将改变后的值存入E2PROM
**********************************************************/
void SaveBaseVolt(uint16 newBaseVolt)
{
baseVolt=newBaseVolt;
eeprom_write(AddrL_BaseVolt,lobyte(baseVolt));
eeprom_write(AddrH_BaseVolt,hibyte(baseVolt));
}
/**********************存储放大倍数************************
**入口: 放大倍数
**出口:无
** 改变放大倍数,并将改变后的值存入E2PROM
**********************************************************/
void ChangeAmp(void)
{
if(Amp==conAmp1)
{
Amp=conAmp2;
}
else if(Amp==conAmp2)
{
Amp=conAmp1;
}
eeprom_write(AddrE2Amp,Amp);
}
/**********************改变基准电压***************************
**入口:基准电压的某一位
**出口:无
**digit INT1 POINT1 POINT2
** baseVolt+100 baseVolt+10 baseVolt+1
*************************************************************/
void ChangeBaseVolt(uint8 digit)
{
if(digit==INT1)
{
baseVolt=baseVolt+100;
}
else if(digit==POINT1)
{
baseVolt=baseVolt+10;
}
else if(digit==POINT2)
{
baseVolt=baseVolt+1;
}
if(baseVolt>conBaseMax)
{
baseVolt=conBaseMin;
}
SaveBaseVolt(baseVolt);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -