📄 caiji.c
字号:
#define OS_GLOBALS
#include <variable.H>
void Init_sys(void)
{
memset(Rcv, 0, sizeof(Rcv));
memset(Snd, 0, sizeof(Snd));
MakeCrcTable();
RELAY1=0;
RELAY2=0;
SCON=0x50;
TMOD=0x21;
IT0=0; IT1=0;
TH0=0xEE; TL0=0x00; // T0 = 12/11059200 * (0x10000 - TH_TL) = 5.00ms
RS485SndDelTime = 0;
TR=0;
Address=D_ADDR & 0x0f;
ET1=0;
#ifdef PARACOM0
TH1=PARACOM0;// 0xF4:2400 0xFA:4800; 0xFD:9600 freq =(11059200/12 / (0x100-TH1))/32= 9600
TR1=1;
ES=1;
#else
ES=0;
#endif
#ifdef PARACOM1
LCR1=0x80;
D_SER1=PARACOM1;
IER1=0x00;
LCR1=0x03; // 0x03: n,8,1; 0x07:n,8,2
IER1=0x01;
EX0=1;
#else
EX0=0;
#endif
#ifdef PARACOM2
LCR2=0x80;
D_SER2=PARACOM2;
IER2=0x00;
LCR2=0x03; // stop_bit is 1
IER2=0x01;
EX1=1;
#else
EX1=0;
#endif
ST_AD=0;
TR0=1; ET0=1; EA=1;
}
void StartAD(void)
{
unsigned char xdata cTmp;
ST_AD=1;
cTmp=0;
while (cTmp<20) cTmp++;
ST_AD=0;
}
unsigned char SaveYcData(unsigned char Chn)
{
float data ftmp;
unsigned char data i,k,cTmp;
static unsigned char data TempPos=0;
static unsigned char xdata AD_Temp[AVERTIMES];
AD_Temp[TempPos++] = D_0809;
if (TempPos < AVERTIMES) return 0;
TempPos=0;
for (k=0; k<AVERTIMES-1; k++ ) {
for (i=k+1; i<AVERTIMES; i++) {
if ( AD_Temp[k] < AD_Temp[i] ) {
cTmp=AD_Temp[k];
AD_Temp[k]=AD_Temp[i];
AD_Temp[i]=cTmp;
}
}
}
k=AVERTIMES / 2 ;
ftmp = AD_Temp[k] + AD_Temp[k-1] + AD_Temp[k+2] + AD_Temp[k+1];
YcData[Chn]= ftmp / 4.0;
return 1;
}
void ChannelSel(unsigned char Chn)
{
AD_A0= Chn & 1;
AD_A1= Chn & 2;
AD_A2= Chn & 4;
}
void main(void)
{
unsigned char data cTmp1, cTmp2, AdOver, Ad_Loop;
Init_sys();
StartAD();
while(1) {
if (enPoll == 1) {
enPoll = 0;
#ifdef ELTECK_AC
AcProcess();
#endif
#ifdef ELTECK_DC
DcProcess();
#endif
}
Std_Process(QZJ);
if (AdOver < 4) {
AdOver++;
}
else {
if ( SaveYcData(Ad_Loop) ) Ad_Loop=(Ad_Loop+1) % 8;
ChannelSel(Ad_Loop);
StartAD();
AdOver=0;
}
cTmp1=YX1; cTmp2= YX2;
if ( (LastYx1 != cTmp1) || (LastYx2 != cTmp2) ){
LastYx1 = cTmp1; LastYx2 = cTmp2;
SendYxToQZJ(QZJ);
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -