?? pulseparse.txt
字號:
使用LPC932制作的一款電表---PulseParse
redbug 發表于 2005-10-14 16:36:00
#i nclude <REG932.H>
#i nclude <define.h>
#i nclude <Stdio.h>
#i nclude <Intrins.h>
//數據累加
void SumData(void)
{
//總電量累加
PulseData=PulseData+1;
if(PulseData==16)
{
SumPulseData[0]=SumPulseData[0]+1;
if(SumPulseData[0]==0x64)
{
SumPulseData[0]=0x00;
SumPulseData[1]=SumPulseData[1]+1;
if(SumPulseData[1]==0x64)
{
SumPulseData[1]=0x00;
SumPulseData[2]=SumPulseData[2]+1;
if(SumPulseData[2]==0x64)
{
SumPulseData[2]=0x00;
SumPulseData[3]=SumPulseData[3]+1;
if(SumPulseData[3]==0x64)
{
SumPulseData[0]=0x00;
SumPulseData[1]=0x00;
SumPulseData[2]=0x00;
SumPulseData[3]=0x00;
}
}
}
}
}
//反向電量累加
if(ReverseFgToData)
{
if(PulseData==16)
{
ReversePulseData[0]=ReversePulseData[0]+1;
if(ReversePulseData[0]==0x64)
{
ReversePulseData[0]=0x00;
ReversePulseData[1]=ReversePulseData[1]+1;
if(ReversePulseData[1]==0x64)
{
ReversePulseData[1]=0x00;
ReversePulseData[2]=ReversePulseData[2]+1;
if(ReversePulseData[2]==0x64)
{
ReversePulseData[2]=0x00;
ReversePulseData[3]=ReversePulseData[3]+1;
if(ReversePulseData[3]==0x64)
{
ReversePulseData[0]=0x00;
ReversePulseData[1]=0x00;
ReversePulseData[2]=0x00;
ReversePulseData[3]=0x00;
}
}
}
}
}
}
//峰電量累加
if(FengFg)
{
if(PulseData==16)
{
FengPulseData[0]=FengPulseData[0]+1;
if(FengPulseData[0]==0x64)
{
FengPulseData[0]=0x00;
FengPulseData[1]=FengPulseData[1]+1;
if(ReversePulseData[1]==0x64)
{
FengPulseData[1]=0x00;
FengPulseData[2]=FengPulseData[2]+1;
if(ReversePulseData[2]==0x64)
{
FengPulseData[2]=0x00;
FengPulseData[3]=FengPulseData[3]+1;
if(FengPulseData[3]==0x64)
{
FengPulseData[0]=0x00;
FengPulseData[1]=0x00;
FengPulseData[2]=0x00;
FengPulseData[3]=0x00;
}
}
}
}
}
}
//平電量累加
if(PingFg)
{
if(PulseData==16)
{
PingPulseData[0]=PingPulseData[0]+1;
if(PingPulseData[0]==0x64)
{
PingPulseData[0]=0x00;
PingPulseData[1]=PingPulseData[1]+1;
if(PingPulseData[1]==0x64)
{
PingPulseData[1]=0x00;
PingPulseData[2]=PingPulseData[2]+1;
if(PingPulseData[2]==0x64)
{
PingPulseData[2]=0x00;
PingPulseData[3]=PingPulseData[3]+1;
if(PingPulseData[3]==0x64)
{
PingPulseData[0]=0x00;
PingPulseData[1]=0x00;
PingPulseData[2]=0x00;
PingPulseData[3]=0x00;
}
}
}
}
}
}
//谷電量累加
if(GuFg)
{
if(PulseData==16)
{
GuPulseData[0]=GuPulseData[0]+1;
if(GuPulseData[0]==0x64)
{
GuPulseData[0]=0x00;
GuPulseData[1]=GuPulseData[1]+1;
if(GuPulseData[1]==0x64)
{
GuPulseData[1]=0x00;
GuPulseData[2]=GuPulseData[2]+1;
if(GuPulseData[2]==0x64)
{
GuPulseData[2]=0x00;
GuPulseData[3]=GuPulseData[3]+1;
if(GuPulseData[3]==0x64)
{
GuPulseData[0]=0x00;
GuPulseData[1]=0x00;
GuPulseData[2]=0x00;
GuPulseData[3]=0x00;
}
}
}
}
}
}
if(PulseData==16)
{
PulseData=0;
}
}
void PulseParse(void)
{
if(PulseParseFg)
{
KeyTemp=~P0&0x30;
KeyTemp=KeyTemp>>4;
switch(KeyTemp)
{
case 0x00 : //正向電量脈沖采集---累積正向電量
if(SumBit)
{
SumData();
SumBit=0;
}
ReverseFgToData=0;
ReverseFgToLcd=0;
KBMASK=KBMASK|0x30;
EKBI=1;
break;
case 0x01 : //正向電量脈沖有效標志
SumBit=1;
ReverseFgToData=0;
ReverseFgToLcd=0;
KBMASK=KBMASK|0x10;
EKBI=1;
break;
case 0x02 : //反向電量脈沖標志+脈沖有效---累積標志---反向電量
ReverseFgToData=1;
ReverseFgToLcd=1;
if(AddRev)
{
SumData();
AddRev=0;
}
KBMASK=KBMASK|0x20;
EKBI=1;
break;
case 0x03 :
AddRev=1;
KBMASK=KBMASK|0x30;
EKBI=1;
break;
}
PulseParseFg=0;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -