📄 interface.cpp
字号:
// interface.cpp
/* interface.cpp中的函数是校验程序Calibration和校验台或ADE7758交互的一个接口
根据校正的需要设置了一些函数接口,随着校验台给出的接口的内容的不同,
可以在interface.cpp中补充接口函数中的代码,或者加入删除接口函数
*/
#include "StdAfx.h"
//////////////////////////////////////////////////////////////////////////
// ------------------ 在各校正步骤中可能用到的接口函数 -----------------//
// SetupPulseOutput()
// SetupSystem()
// EnableAPCF()
// EnableVARCF()
// SetRegistersAPCF()
// SetRegistersVARCF()
// ReadFrequencyAPCF()
// ReadFrequencyVARCF()
// GetFreq()
// ResetStatusRegister()
// ReadRegistersWATTHR()
// ReadRegistersVAHR()
// ReadRegistersVARHR()
// InitLineMode()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* SetupPulseOutput()
* 函数功能: 根据参数phase对Palse output进行设置
* 参数说明
* phase: 相位,表明对那一相进行设置; phase = 0, 1, 2分别表示A相, B相和C相
*/
void SetupPulseOutput(int phase)
{
switch(phase) {
case 0: // Phase A
// 在此处加入代码,对A相的Pulse Output进行设置
break;
case 1: // Phase B
// 在此处加入代码,对B相的Pulse Output进行设置
break;
case 2: // Phase C
// 在此处加入代码,对C相的Pulse Output进行设置
break;
default:
break;
}
}
/* -------------------------------------------------------------------
* SetupSystem()
* 函数功能: 设置测试的环境,测试电流,测试电压以及pf
* 参数说明
* TestCur: 测试电流的值
* TestVol: 测试电压的值
* pf: power factor的值, pf = 1
*/
void SetupSystem(double Cur, double Vol, double pf)
{
// 在此加入设置测试环境的代码
return;
}
/* -------------------------------------------------------------------
* EnableAPCF()
* 函数功能: 开启APCF
*/
void EnableAPCF()
{
// 在此处加入代码开启APCF
return;
}
/* -------------------------------------------------------------------
* EnableVARCF()
* 函数功能: 开启VARCF
*/
void EnableVARCF()
{
// 在此处加入代码开启VARCF
return;
}
/* -------------------------------------------------------------------
* SetRegistersAPCF()
* 函数功能: 设置ADE7758中的寄存器APCF(APCFNUM, APCFDEN)
* 参数说明
* APCFDEN: 需要设置的APCFDEN的值
* APCFNUM: 需要设置的APCFNUM的值
*/
void SetRegistersAPCF(int APCFNUM, int APCFDEN)
{
// 在此处加入代码,对寄存器APCF(APCFNUM, APCFDEN)进行设置
return;
}
/* -------------------------------------------------------------------
* SetRegistersVARCF()
* 函数功能: 设置ADE7758中的寄存器VARCF(VARCFNUM, VARCFDEN)
* 参数说明
* VARCFDEN: 需要设置的VARCFDEN的值
* VARCFNUM: 需要设置的VARCFNUM的值
*/
void SetRegistersVARCF(int VARCFNUM, int VARCFDEM)
{
// 在此处加入代码,对寄存器VARCF(VARCFNUM, VARCFDEN)进行设置
return;
}
/* -------------------------------------------------------------------
* ReadFrequencyAPCF()
* 函数功能: 读取实际测试得到的频率APCF
* 返回值说明:
* 返回实际测试得到的频率APCF
*/
double ReadFrequencyAPCF()
{
double frequency = 0.0;
// 在此加入读取实际测试频率APCF的代码
return frequency;
}
/* -------------------------------------------------------------------
* ReadFrequencyVARCF()
* 函数功能: 读取实际测试得到的频率VARCF
* 返回值说明:
* 返回实际测试得到的频率VARCF
*/
double ReadFrequencyVARCF()
{
double frequency = 0.0;
// 在此加入读取实际测试频率VARCF的代码
return frequency;
}
/* -------------------------------------------------------------------
* GetFreq()
* 函数功能: 从寄存器中读取指定相位的实测频率
* 参数说明
* phase: 相位,表明读取哪一相的频率; phase = 0, 1, 2分别表示A相, B相和C相
*/
int GetFreq(int phase)
{
int frequency = 0;
switch(phase) {
case 0: // Phase A
// 在此处加入代码,设置为A相,读出频率
break;
case 1: // Phase B
// 在此处加入代码,设置为B相,读出频率
break;
case 2: // Phase C
// 在此处加入代码,设置为C相,读出频率
break;
default:
break;
}
return frequency;
}
/* -------------------------------------------------------------------
* ResetStatusRegister()
* 函数功能: 复位状态寄存器
*/
void ResetStatusRegister()
{
// 在次加入代码,复位状态寄存器
return;
}
/* -------------------------------------------------------------------
* ReadRegistersWATTHR()
* 函数功能: 读取WATTHR寄存器
* 参数说明
* WATTHR: 地址, WATTHR[0-2]用于存放三相WATTHR的值
*/
void ReadRegistersWATTHR(int* WATTHR)
{
// 在此加入代码,读取三相WATTHR寄存器
return;
}
/* -------------------------------------------------------------------
* ReadRegistersVAHR()
* 函数功能: 读取VAHR寄存器
* 参数说明
* VAHR: 地址, VAHR[0-2]用于存放三相VAHR的值
*/
void ReadRegistersVAHR(int* VAHR)
{
// 在此加入代码,读取三相VAHR寄存器
return;
}
/* -------------------------------------------------------------------
* ReadRegistersVARHR()
* 函数功能: 读取VARHR寄存器
* 参数说明
* VARHR: 地址, VARHR[0-2]用于存放三相VARHR的值
*/
void ReadRegistersVARHR(int* VARHR)
{
// 在此加入代码,读取三相VARHR寄存器
return;
}
/* -------------------------------------------------------------------
* InitLineMode()
* 函数功能: 初始化Line模式所需要的寄存器
*/
void InitLineMode()
{
// Set LYCMODE register
// Choose accumulation time(LINECYC)
// Set mask for LENERGY interrupt
return;
}
//////////////////////////////////////////////////////////////////////////
// ------------- 校正IRMS和VRMS Offset时需要用到的接口函数 -------------//
// InitIVRMSOffsetCalibration()
// ReadRegistersIVRMS()
// WriteRegistersIVRMS()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* InitIVRMSOffsetCalibration()
* 函数功能: 初始化校正IRMS VRMS Offset
*/
void InitIVRMSOffsetCalibration()
{
// Step 1: Set configuration registers for zero crossng on all phases
// 在此处加入代码,设置ADE7758中过零点检测需要的寄存器
// Step 2: Set the interrupt mask register for zero-crossing detection on all phases
// 在此处加入代码,设置ADE7758中的中断寄存器
return;
}
/* -------------------------------------------------------------------
* ReadRegistersIVRMS()
* 函数功能: 从寄存器中读取IRMS和VRMS的实际测量值,并将这些值存到指定的地址(nIRMS, nVRMS)中,
* 计算过程中,计算N次取平均
* 参数说明
* IRMS: 地址, IRMS[0-2]用于存放三相IRMS的值
* VRMS: 地址, VRMS[0-2]用于存放三相IVMS的值
* N: 计算的次数, IRMS和VRMS的值均为计算N次取平均
*/
void ReadRegistersIVRMS(int* IRMS, int* VRMS, int N)
{
// 在此处加入读取寄存器的代码
return;
}
/* -------------------------------------------------------------------
* WriteRegistersIVRMS()
* 函数功能: 将IRMS和VRMS Offset校正的结果写入相应寄存器
* 参数说明
* IRMSOS: 地址, IRMSOS[0-2]用于存放三相IRMSOS的值
* VRMSOS: 地址, VRMSOS[0-2]用于存放三相VRMSOS的值
*/
void WriteRegistersIVRMS(int* IRMSOS, int* VRMSOS)
{
// 在此处加入代码,将IRMS,VRMS Offset校验的结果写入ADE7758相应的寄存器
return;
}
//////////////////////////////////////////////////////////////////////////
// ---------------- 校正VA WATT Gain时需要用到的接口函数 ---------------//
// InitVAWATTGainCalibration()
// InitVAWATTGainCalibration_LineMode()
// WriteRegistersVAWATT()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* InitVAWATTGainCalibration()
* 函数功能: 初始化VA WATT Gain校正过程中需要的寄存器
*/
void InitVAWATTGainCalibration()
{
// Step 1: Enable APCF and VARCF pulse outputs
// 设置寄存器,允许APCF和VARCF脉冲输出
EnableAPCF();
EnableVARCF();
// Step 1A: Select VA for VARCF output
// 选择VA做为VARCF的输出
// Step 2: Set gain registers xWG, xVAG to zero
//设置增益寄存器xWG, xVAG为逻辑零
return;
}
/* -------------------------------------------------------------------
* InitVAWATTGainCalibration_LineMode()
* 函数功能: 初始化VA WATT Gain校正过程中需要的寄存器(Line Mode)
*/
void InitVAWATTGainCalibration_LineMode()
{
// Step 1: Set xWG, xVAG to logic zero
// Step 2 - 4: Set LYCMODE register
// Choose accumulation time(LINECYC)
// Set mask for LENERGY interrupt
InitLineMode(); // 完成Line Mode所需要的初始化工作
return;
}
/* -------------------------------------------------------------------
* WriteRegistersVAWATT()
* 函数功能: 将校验的结果写入ADE7758相应的寄存器
* 参数说明
* WG: 地址,WG[0-2]用于存放WATT Gain三相校验的结果
* VAG: 地址,VAG[0-2]用于存放VA Gain三相校验的结果
*/
void WriteRegistersVAWATT(int* pWG, int* pVAG)
{
// 在此处加入代码,将VA WATT Gain的校验结果写入ADE7758相应的寄存器
return;
}
//////////////////////////////////////////////////////////////////////////
// ------------------ 校正VAR Gain时需要用到的接口函数 -----------------//
// InitVARGainCalibration()
// WriteRegistersVARGain()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* InitVARGainCalibration()
* 函数功能: 初始化VARGain校正过程中需要的寄存器
*/
void InitVARGainCalibration()
{
// Step 1: Enable VARCF pulse output
// 设置寄存器,允许VARCF脉冲输出(Enable VARCF pulse outputs)
EnableVARCF();
// Step 1A: Select VAR for VARCF output
// 选择VAR做为VARCF的输出(Select VAR for VARCF output)
// Step 2: Set gain registers xVARG to zero
//设置增益寄存器xVARG为逻辑零
return;
}
/* -------------------------------------------------------------------
* InitVARGainCalibration_LineMode()
* 函数功能: 初始化VAR Gain校正过程中需要的寄存器(Line Mode)
*/
void InitVARGainCalibration_LineMode()
{
// Step 1: Set xVARG to logic zero
// Step 2: Set LYCMODE register
// Step 3: Choose accumulation time(LINECYC)
// Step 4: Set mask for LENERGY interrupt
return;
}
/* -------------------------------------------------------------------
* WriteRegistersVARGain()
* 函数功能: 将VAR Gain校验的结果写入ADE7758相应的寄存器
* 参数说明
* VARG: 地址,VARG[0-2]用于存放VAR Gain三相校验的结果
*/
void WriteRegistersVARGain(int* VARG)
{
// 在此处加入代码,将VAR Gain的校验结果写入ADE7758相应的寄存器
return;
}
//////////////////////////////////////////////////////////////////////////
// -------------------- 校正Phase时需要用到的接口函数 ------------------//
// WriteRegistersVARGain()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* WriteRegistersVARGain()
* 函数功能: 将校验的结果写入ADE7758相应的寄存器
* 参数说明
* PHCAL: 地址,PHCAL[0-2]用于存放Phase三相校验的结果
*/
void WriteRegistersPhase(int* PHCAL)
{
// 在此处加入代码,将Phase的校验结果写入ADE7758相应的寄存器
return;
}
//////////////////////////////////////////////////////////////////////////
// ----------------- 校正VAR Offset时需要用到的接口函数 ----------------//
// InitVAROffsetCalibration()
// WriteRegistersVAROffset()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* InitVAROffsetCalibration()
* 函数功能: 初始化VAR Offset校正过程中需要的寄存器
*/
void InitVAROffsetCalibration()
{
// Step 1: Enable VARCF pulse output
// 设置寄存器,允许VARCF脉冲输出
EnableVARCF();
// Step 2: Set offset registers xVAROS to logic zero
// 设置偏移寄存器xVAROS为逻辑零
return;
}
/* -------------------------------------------------------------------
* WriteRegistersVAROffset()
* 函数功能: 将VAR Offset校验的结果写入ADE7758相应的寄存器
* 参数说明
* VAROS: 地址,VAROS[0-2]用于存放VAR Offset三相校验的结果
*/
void WriteRegistersVAROffset(int* VAROS)
{
// 在此处加入代码,将VAR Offset的校验结果写入ADE7758相应的寄存器
return;
}
//////////////////////////////////////////////////////////////////////////
// ----------------- 校正WATT Offset时需要用到的接口函数 ----------------//
// InitWATTOffsetCalibration()
// WriteRegistersWATTOffset()
//////////////////////////////////////////////////////////////////////////
/* -------------------------------------------------------------------
* InitWATTOffsetCalibration()
* 函数功能: 初始化WATT Offset校正过程中需要的寄存器
*/
void InitWATTOffsetCalibration()
{
// Step 1: Enable APCF pulse outputs
// 设置寄存器,允许APCF脉冲输出(Enable APCF pulse outputs)
EnableAPCF();
// Step 2: Set offset registers xWATTOS to logic zero
// 设置偏移寄存器xWATTOS为逻辑零
return;
}
/* -------------------------------------------------------------------
* WriteRegistersWATTOffset()
* 函数功能: 将WATT Offset校验的结果写入ADE7758相应的寄存器
* 参数说明
* WATTOS: 地址,WATTOS[0-2]用于存放WATT Offset三相校验的结果
*/
void WriteRegistersWATTOffset(int* WATTOS)
{
// 在此处加入代码,将WATT Offset的校验结果写入ADE7758相应的寄存器
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -