RN8302应用程序V13.docx
- 文档编号:3518669
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:54
- 大小:28.12KB
RN8302应用程序V13.docx
《RN8302应用程序V13.docx》由会员分享,可在线阅读,更多相关《RN8302应用程序V13.docx(54页珍藏版)》请在冰豆网上搜索。
RN8302应用程序V13
typedefunsignedcharu8;
typedefsignedchars8;
typedefunsignedshortu16;
typedefsignedshorts16;
typedefunsignedlongintu32;
typedefsignedlongints32;
typedefunsignedshortWORD;
typedefunsignedcharBOOL;
#definePinWrite_ADSCLK(x)((x)?
(P0_bit.no6=1,PM0_bit.no6=1):
(PM0_bit.no6=0,P0_bit.no6=0))//
#definePinMode_ADSCLK(x)((x==GPIO_MODE_OUT)?
(PM0_bit.no6=0):
(PM0_bit.no6=1))
#definePinRead_ADSDI()(P4_bit.no4)
#definePinWrite_ADSDO(x)((x)?
(P6_bit.no0=1,PM6_bit.no0=1):
(PM6_bit.no0=0,P6_bit.no0=0))//
#definePinWrite_ADCS(x)((x)?
(P6_bit.no1=1,PM6_bit.no1=1):
(PM6_bit.no1=0,P6_bit.no1=0))
#definePinWrite_ADRST(x)((x)?
(P0_bit.no5=1,PM0_bit.no5=1):
(PM0_bit.no5=0,P0_bit.no5=0))
typedefenum{ERROR=0,SUCCESS=!
ERROR}ErrorStatus;
typedefstruct{
//u32Dat:
23;
//u32S:
1;
u8Dat0;
u8Dat1;
u8Dat2:
7;
u8S:
1;
}sDF09;
typedefstruct{
u32Dat;
}sDF11;
typedefsDF11sFsEgSh_TypeDef;
#pragmavector=INTTM01_vect
__interruptvoidMD_INTTM01(void)
{
TMIF01=0;/*INTTM01interruptflagclear*/
SysStamp++;
}
u16fnStamp_Through(u16Ago)
{
externu16SysStamp;
if(SysStamp>=Ago)
{return(SysStamp-Ago);}
else
{return((0xffff-Ago)+SysStamp);}
}
u16fnHexToBcd_u16(u16Dat)
{
u16Result=0;
Dat=Dat%10000;
Result+=(Dat/1000)*0x1000;
Dat=Dat%1000;
Result+=(Dat/100)*0x100;
Dat=Dat%100;
Result+=(Dat/10)*0x10;
Dat=Dat%10;
Result+=Dat;
return(Result);
}
u32fnHexToBcd_u32(u32Dat)
{
u32result=0;
Dat=Dat%100000000;
result+=(Dat/10000000)*0x10000000;
Dat=Dat%10000000;
result+=(Dat/1000000)*0x1000000;
Dat=Dat%1000000;
result+=(Dat/100000)*0x100000;
Dat=Dat%100000;
result+=(Dat/10000)*0x10000;
Dat=Dat%10000;
result+=(Dat/1000)*0x1000;
Dat=Dat%1000;
result+=(Dat/100)*0x100;
Dat=Dat%100;
result+=(Dat/10)*0x10;
Dat=Dat%10;
result+=Dat;
return(result);
}
u16fnDFConver_Bcd16To16(s16Dat)
{
u16Result;
Result=abs(Dat)%8000;
Result=fnHexToBcd_u16(Result);
if(Dat<0)Result|=0x8000;
elseResult&=0x7fff;
return(Result);
}
u32fnDFConver_Bcd32To32(s32Dat)
{
u32Result;
Result=labs(Dat)%80000000;
Result=fnHexToBcd_u32(Result);
if(Dat<0)Result|=0x80000000;
elseResult&=0x7fffffff;
return(Result);
}
sDF09fnDFConver_Hex32ToDF09(s32Dat)
{
sDF09Result;
memset(&Result,0,sizeof(sDF09));
if(Dat<0)Result.S=1;
elseResult.S=0;
Dat=labs(Dat)%800000;
Dat=fnHexToBcd_u32(Dat);
Result.Dat0=Dat;
Result.Dat1=Dat>>8;
Result.Dat2=Dat>>16;
return(Result);
}
typedefunion//公共数据运算区8字节
{
u8ucTempBuf[8];
u32lTemp32;
u16wTemp16;
u8ucTemp8;
}sDl645StruDataComm_TypeDef;
__no_initsDl645StruDataComm_TypeDefDl645RN8302DataComm;
__no_initsDl645FrontTmp_TypeDefDl645FrontTmp;
__no_initsDl645Front_TypeDefDl645Front;
__no_initsDl645Eg_TypeDefDl645Eg;
__no_initsDl645FirmParaFile_TypeDefDl645FirmPara;
typedefstruct
{
u8ChkErrCnt;//读错误计数1
s32Pw[12];//{PaPbPcPQaQbQcQSaSbScS}48
s32UI[7];//UaUbUcIaIbIcInal28
s32VectorU[9];//正序、负序、零序电压
s32VectorI[9];//正序、负序、零序电流
s32Pf[4];//PfPfaPfbPfc16
u32Frequency;//电网频率,单位:
4
s32YUI[3],YUU[2];//20
s32Pulse[15];//前台高频脉冲48
//---电能脉冲---
s32Pulse_EgTmp[20];//高频脉冲{P,Q,Ps},{Pa,Qa,Psa},{Pb,Qb,Psb},{Pc,Qc,Psc}{Fp,Fq}{Fpa,Fqa}{Fpb,Fqb}{Fpc,Fqc}
u32Pulse_Eg[20];//低频脉冲数
//---需量脉冲---
s32Pulse_NeedTmp[12];
u16Pulse_Need[12];//{PNeed,QNeed,PsNeed},{PNeeda,QNeeda,PsNeeda},{PNeedb,QNeedb,PsNeedb},{PNeedc,QNeedc,PsNeedc}48
u16Angle[9];
u16PDirect;//4
u32ChkSum1;//4
u32ChkSum2;//4
u16Temperature;//温度4
u32ClockBat;//时钟电池4
u32BackupBat;//后备电池4
u16CF1DelayStamp;
u16CF2DelayStamp;
u16CfIn_P;
u16CfIn_q;
u16CfTime_P;
u16CfTime_q;
}sDl645FrontTmp_TypeDef;
typedefstruct
{
structsFrontPubData_TypeDef{
u16U[3];//---电压---NNN.N6
u16VectorU[9];//正序电压0--2负序电压3---5零序电压6---8
u32I[4];//---电流NNNN.NNNN(电流值要求3整3小,整定值要求2整4小,最高位表示方向)---16
u32VectorI[9];//正序电流0--2负序电流3---5零序电流6---8
sDF09Pw[12];//---瞬时有功/无功/视在功率NN.NNNN---{PPaPbPcQQaQbQcSSaSbSc}36
u16Pf[4];//---功率因数N.NNN---最高位表示方向{PfPfaPfbPfc}8sDF05
u16Angle[9];//---相角NNN.N---18
//PhUb,PhUc,以A相电压为基准,B、C相角度//(hyg)BCD码
//PhIa,PhIb,PhIc,A相电流与A相电压间角度、B相电流与B相电压间角度、C相电流与C相电压间角度
//AngleA,AngleB,AngleC,A相电流与A相电压间角度、B相电流与A相电压间角度、C相电流与A相电压间角度
//AngleC-AngleA
u32UnblU;//电压不平衡度NNNN.NN%4
u32UnblI;//电流不平衡度NNNN.NN%4
u16FuzzyU[3];//---电压波形失真度NN.NN%---6
u16FuzzyI[3];//---电流波形失真度NN.NN%---6
u16WaveU[3][21];//---相电压谐波含量NN.NN%---126
u16WaveI[3][21];//---相电流谐波含量NN.NN%---126
//---其他---
u16Frequency;//NN.NN2
u32PPwave;//NN.NNNN4
u16Temperature;//NNN.N2
u16ClockBat;//NN.NN2
u16BackupBat;//NN.NN2
u8PDirect;//原功率方向,用于需量处理(0总/1A/2B/3C,注意与FrontTmp不同)1
}PubData;
structsFrontPriData_TypeDef{
u8Flag;//---工作异常标志---1
u8PhaseCalStep;
u16FrontStamp;
//u8BatCalStep;
u16BatStamp;
//u16BatDetStamp;
}PriData;
structsFrontPriPara_TypeDef{
u32PConstE;//有功常数
u32QConstE;//无功常数(Hex码)4
u16Crc;//2
}PriPara;
}sDl645Front_TypeDef;//缓冲区转换后的有效数据
typedefstruct
{
u8FractionI;/*电流小数位数*/
u8FractionU;/*电压小数位数*/
u8FractionE;/*电能小数位数*/
u8FractionP;/*功率需量小数位数*/
u16ConstE;/*电表有功常数*/
u16Pulse_deltaE;/*数*/
u8HighPulseRate;
u8PhaseCalStep;
u32IRmsConst;//10
u16Reserve[2];
u16NOLOAD;
u16ZEROSTAR;//20
u32ChkSum1;
u16HFConst1;
u16HFConst2;
u32VRmsConst;//30
u16Reserve1;
u32PRmsConst;
u16Reserve2;
u16VGain[3];//42
u16IGain[4];//48
u8PHSU[2];//56
u32PHSI[3];
u16PRth[4];//70
u16UI_Offset[7];
u16P_PHS[3];/*有功相位校正寄存器*///92
u16PGain[3];/*有功增益校正寄存器*/
}sDl645FirmParaFile_TypeDef;
typedefstruct{
#pragmapack
(1)
structsDl645EgPubData_TypeDef
{
sFsEgSh_TypeDefAllPEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefPtPEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefNtPEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefAllQEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefPtQEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefNtQEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefQd1QEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefQd2QEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefQd3QEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefQd4QEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefPtPsEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefNtPsEgSh[DL645_MAX_FL+1];
sFsEgSh_TypeDefAssEgSh;
sFsEgSh_TypeDefBasePtPEgSh;
sFsEgSh_TypeDefBaseNtPEgSh;
sFsEgSh_TypeDefWavePtPEgSh;
sFsEgSh_TypeDefWaveNtPEgSh;
sFsEgSh_TypeDefCopPEgSh;
sFsEgSh_TypeDefIronPEgSh;
//-------------
sFsEgSh_TypeDefPtPEgSha;
sFsEgSh_TypeDefNtPEgSha;
sFsEgSh_TypeDefPtQEgSha;
sFsEgSh_TypeDefNtQEgSha;
sFsEgSh_TypeDefQd1QEgSha;
sFsEgSh_TypeDefQd2QEgSha;
sFsEgSh_TypeDefQd3QEgSha;
sFsEgSh_TypeDefQd4QEgSha;
sFsEgSh_TypeDefPtPsEgSha;
sFsEgSh_TypeDefNtPsEgSha;
sFsEgSh_TypeDefAssEgSha;
sFsEgSh_TypeDefBasePtPEgSha;
sFsEgSh_TypeDefBaseNtPEgSha;
sFsEgSh_TypeDefWavePtPEgSha;
sFsEgSh_TypeDefWaveNtPEgSha;
sFsEgSh_TypeDefCopPEgSha;
sFsEgSh_TypeDefIronPEgSha;
//-------------
sFsEgSh_TypeDefPtPEgShb;
sFsEgSh_TypeDefNtPEgShb;
sFsEgSh_TypeDefPtQEgShb;
sFsEgSh_TypeDefNtQEgShb;
sFsEgSh_TypeDefQd1QEgShb;
sFsEgSh_TypeDefQd2QEgShb;
sFsEgSh_TypeDefQd3QEgShb;
sFsEgSh_TypeDefQd4QEgShb;
sFsEgSh_TypeDefPtPsEgShb;
sFsEgSh_TypeDefNtPsEgShb;
sFsEgSh_TypeDefAssEgShb;
sFsEgSh_TypeDefBasePtPEgShb;
sFsEgSh_TypeDefBaseNtPEgShb;
sFsEgSh_TypeDefWavePtPEgShb;
sFsEgSh_TypeDefWaveNtPEgShb;
sFsEgSh_TypeDefCopPEgShb;
sFsEgSh_TypeDefIronPEgShb;
//-------------
sFsEgSh_TypeDefPtPEgShc;
sFsEgSh_TypeDefNtPEgShc;
sFsEgSh_TypeDefPtQEgShc;
sFsEgSh_TypeDefNtQEgShc;
sFsEgSh_TypeDefQd1QEgShc;
sFsEgSh_TypeDefQd2QEgShc;
sFsEgSh_TypeDefQd3QEgShc;
sFsEgSh_TypeDefQd4QEgShc;
sFsEgSh_TypeDefPtPsEgShc;
sFsEgSh_TypeDefNtPsEgShc;
sFsEgSh_TypeDefAssEgShc;
sFsEgSh_TypeDefBasePtPEgShc;
sFsEgSh_TypeDefBaseNtPEgShc;
sFsEgSh_TypeDefWavePtPEgShc;
sFsEgSh_TypeDefWaveNtPEgShc;
sFsEgSh_TypeDefCopPEgShc;
sFsEgSh_TypeDefIronPEgShc;
}PubData;
#pragmapack()
structsDl645EgPubDataCrc_TypeDef
{
u16AllPEgSh;
u16PtPEgSh;
u16NtPEgSh;
u16AllQEgSh;
u16PtQEgSh;
u16NtQEgSh;
u16Qd1QEgSh;
u16Qd2QEgSh;
u16Qd3QEgSh;
u16Qd4QEgSh;
u16PtPsEgSh;
u16NtPsEgSh;
u16AssEgSh;
u16BasePtPEgSh;
u16BaseNtPEgSh;
u16WavePtPEgSh;
u16WaveNtPEgSh;
u16CopPEgSh;
u16IronPEgSh;
//-------------
u16PtPEgSha;
u16NtPEgSha;
u16PtQEgSha;
u16NtQEgSha;
u16Qd1QEgSha;
u16Qd2QEgSha;
u16Qd3QEgSha;
u16Qd4QEgSha;
u16PtPsEgSha;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RN8302 应用程序 V13