vfdeal.c
来自「16路巡检仪 该仪表采用c语言编写」· C语言 代码 · 共 121 行
C
121 行
#include "head.h"
uint gg,trr;
extern uint xdata TMing2,VR[16],IR[16],AR[16];
extern float xdata filt,PV[road],mv,rangeL[16],rangeH[16];
extern uchar xdata collt, typdat[16];
extern uchar cygnd; //采样地标志
extern bit cytwo;
extern uchar vfmark;
extern uchar VFport;
uchar petat=0;
uint xdata pvlb=0;
uint xdata port[road];
uint pvdat[4];
uchar ttw=0;
uchar pet;
bit ter,tq,dt;
void VFdeal()
{
float X;
if(vfmark==1)
{
if(petat==0)
{
petat=3+(uchar)filt*10;
pet=petat;
}
pvdat[ttw]=TH1<<8|TL1;
ttw++;
if(cytwo==0)
cygnd++;
if((typdat[VFport]<=11)&&(typdat[VFport]>8))
if((cytwo==0)&&(cygnd==2))
{
pvdat[3]=pvdat[0]+pvdat[1]-pvdat[2];
cygnd=0;
ter=1;
tq=1;
ttw=0;
}
if(cygnd==2)
{
pvdat[3]=pvdat[0]-pvdat[1];
cygnd=0;
ter=1; //开始处理数据
tq=1;
ttw=0;
}
if(ter==1)
{
ter=0;
petat--;
pvlb+=pvdat[3];
if(petat==0)
{
pvlb/=pet;
port[VFport]=pvlb;
if(typdat[VFport]<=8)
X=pvlb*100.0/VR[VFport];
else if(typdat[VFport]<=11)
X=pvlb*280.98/AR[VFport];
else if(typdat[VFport]<=13)
X=pvlb*5.0/VR[VFport];
else if(typdat[VFport]<=16)
X=pvlb*20.0/IR[VFport];
deal(X);
if(typdat[VFport]==8)
PV[VFport]=pvlb/VR[VFport]*(rangeH[VFport]-rangeL[VFport])+rangeL[VFport];
else if(typdat[VFport]<=13)
PV[VFport]=pvlb/VR[VFport]*(rangeH[VFport]-rangeL[VFport])+rangeL[VFport];
else if(typdat[VFport]<=16)
PV[VFport]=X*(rangeH[VFport]-rangeL[VFport])/20+rangeL[VFport];
dt=1;
}
}
if((VFport<15)&&(dt==1))
{
VFport++;
pvlb=0;
dt=0;
}
if(VFport>=15)
VFport=0;
vfmark=0;
VFstart(VFport);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?