📄 commondefine.h
字号:
//切记切记:全局变量定义不要在.h文件中定义,会导致变量重复定义
//.h文件中放define(没有重复定义问题),变量形式的定义(比如结构体的内部定义,不是变量定义),
//变量声明,以及其他的.h文件。
//全局变量的定义要放到.c文件中
#ifndef CommonDefine_H
#define CommonDefine_H
//-------------------------------------------------------------------------
//头文件
#include "Arithmetics.h"
//-------------------------------------------------------------------------
//宏定义
//adc define
#define ADC_CKPS 0x2 // ADC module clock内部分频 = HSPCLK/2*ADC_CKPS
#define ADC_CPS 0x0 // ADC module clock额外的一次内部二分频
#define ADC_SHCLK 0xf // S/H width in ADC module periods = 16 ADC clocks
//ADC define
#define AdcVOffset 2048
//#define AdcCOffset 2034
#define AdcBusOffset 0 //8
//DC define
#define DCAVOffset 0;
#define DCACOffset 0;//2048
#define DCBVOffset 0;
#define DCBCOffset 0;//2048
//sin的偏置
#define SineErrOffset 4 //由于电网电压过零点检测至少滞后4个点,所以补偿要提前4个点
#define SinePhaOffset 0 //33 30度 //相电压和线电压的相位差
//epwm define DCAC
#define EPWM_PERIOD 2500 //100M 50us 20k
#define EPWMU_MIN_DB 200 //1us
#define EPWMV_MIN_DB 200 //1us
#define EPWMW_MIN_DB 200 //1us
//epwm define DCDC
#define EPWMDC_PERIOD 1000 //50k
#define EPWMGD1_MIN_DB 25//18//25 //250ns
#define EPWMGD2_MIN_DB 25//18//25 //250ns
#define EPWMGD3_MIN_DB 21//25 //250ns
#define EPWMGD4_MIN_DB 21//25 //250ns
//----------------------------------------------------------------------------
//全局变量声明
//A相电压环和电流环PID
extern IncPID VolALoopPID;
extern IncPID CurrALoopPID;
//A相电压环PID参数
//在s域中,VolLoop_P对应Kp,VolLoop_I对应T*Ki,VolLoop_D对应Kd/T
extern float32 VolALoop_P; // Set PID Coefficients
extern float32 VolALoop_I;
extern float32 VolALoop_D;
//A相电流环PID参数
extern float32 CurrALoop_P; // Set PID Coefficients
extern float32 CurrALoop_I;
extern float32 CurrALoop_D;
//B相电压环和电流环PID
extern IncPID VolBLoopPID;
extern IncPID CurrBLoopPID;
//B相电压环PID参数
//在s域中,VolLoop_P对应Kp,VolLoop_I对应T*Ki,VolLoop_D对应Kd/T
extern float32 VolBLoop_P; // Set PID Coefficients
extern float32 VolBLoop_I;
extern float32 VolBLoop_D;
//B相电流环PID参数
extern float32 CurrBLoop_P; // Set PID Coefficients
extern float32 CurrBLoop_I;
extern float32 CurrBLoop_D;
//C相电压环和电流环PID
extern IncPID VolCLoopPID;
extern IncPID CurrCLoopPID;
//C相电压环PID参数
//在s域中,VolLoop_P对应Kp,VolLoop_I对应T*Ki,VolLoop_D对应Kd/T
extern float32 VolCLoop_P; // Set PID Coefficients
extern float32 VolCLoop_I;
extern float32 VolCLoop_D;
//C相电流环PID参数
extern float32 CurrCLoop_P; // Set PID Coefficients
extern float32 CurrCLoop_I;
extern float32 CurrCLoop_D;
//锁相用变量
//ABC三相采样电压
extern int16 VolLockA;
extern int16 VolLockB;
extern int16 VolLockC;
//ABC三相频率点数计数器
extern int16 LockAFrecoun;
extern int16 LockBFrecoun;
extern int16 LockCFrecoun;
//ABC三相频率点数
extern int16 LockAFreNum;
extern int16 LockBFreNum;
extern int16 LockCFreNum;
//ADC采样
//A相直流电压采样数组
//extern int16 VolAArray[400];
extern int16 VolAArray;
//A相线电流采样
//extern int16 CurrAArray[400];
extern int16 CurrAArray;
//A相位置(相位)计数器
extern int16 ConvCountA;
//A相瞬时功率
extern int32 PowerAIns;
//A相一个周期内功率累加量
extern int32 PowerATotal;
//A相一个周期有功功率
extern int32 PowerAEffect;
//B相直流电压采样数组
//extern int16 VolBArray[400];
extern int16 VolBArray;
//B相线电流采样
//extern int16 CurrBArray[400];
extern int16 CurrBArray;
//B相位置(相位)计数器
extern int16 ConvCountB;
//C相直流电压采样数组
//extern int16 VolCArray[400];
extern int16 VolCArray;
//C相线电流采样
//extern int16 CurrCArray[400];
extern int16 CurrCArray;
//C相位置(相位)计数器
extern int16 ConvCountC;
//参考输入
//ABC相直流电压参考输入
extern int16 VoltageRef;
extern int16 VoltageDelay;
//A相线电流正弦基准
extern int16 ASinRef;
//A相线电流正弦基准
//extern int16 CurrentARef[500];
extern int16 BSinRef;
//B相线电流正弦基准
//extern int16 CurrentBRef[500];
extern int16 CSinRef;
//C相线电流正弦基准
//extern int16 CurrentCRef[500];
//占空比
extern int16 EPwmU_Compare;
extern int16 EPwmV_Compare;
extern int16 EPwmW_Compare;
////////////////////////////原本定义为函数内局部变量的,但需要初始化或者是因为变量里的值在本次退出子程序后需要保存,以便下一次使用,因此定义为全局变量了
/////////// ISREPwm1_Zero(void)////////////////
//锁相用标志
extern int16 LockAIsFirst; //ABC三相是否找到第一个零点标志
extern int16 LockBIsFirst;
extern int16 LockCIsFirst;
//ABC三相正弦波基准发生标志,1为开始产生正弦波基准,其实也是锁相完毕的标志
extern int16 ASinStart;
extern int16 BSinStart;
extern int16 CSinStart;
////ABC三相电压是否正常
extern int16 IsSinA;
extern int16 IsSinB;
extern int16 IsSinC;
//用于判断电压是否正常的计数器
extern int16 SinAcount;
extern int16 SinBcount;
extern int16 SinCcount;
//三相电压正常的最低值
extern int16 SineLow;
extern int16 VolLineStart; //直流母线开启epwm标志位
//extern int16 IsOpenEPwm; //是否开启pwm逆变标志,0未开启。
//锁相用变量
extern int16 AFreNumTemp; // 临时寄存的上一次实际采样周期值
extern int16 BFreNumTemp;
extern int16 CFreNumTemp;
extern int16 PeriodAError; //实际和基准的周期差,即上一次和本次的周期差
extern int16 PeriodBError;
extern int16 PeriodCError;
extern int16 AModeFlag; //工作模式变量.0为参考电压,采样电压递增模式.1为参考电压和采样电压同时到达零点时模式2为采样电压比参考电压先到达模式:持续时间为采样零点和参考零点之间3为参考电压比采样电压先到达模式,持续时间为参考零点和采样零点之间
extern int16 BModeFlag;
extern int16 CModeFlag;
/////////Adc_Inquire(void)////////////////
//调试用
extern int16 temptemp;
extern int16 RefAAAA[1200];
extern int16 VolAArray1[1200];
//extern int16 VolAArray2[700];
extern int16 ybyb;
extern int16 ybyb1;
extern int16 ybyb2;
///////// LockAZero(int16 Voltage)/////////
extern int16 APlusPeriod; //正半周标志位0为不处于,1为处于正半周
extern int16 APlusNum;
extern int16 AMinusNum;
///////// LockBZero(int16 Voltage)/////////
extern int16 BPlusPeriod; //正半周标志位0为不处于,1为处于正半周
extern int16 BPlusNum;
extern int16 BMinusNum;
///////// LockCZero(int16 Voltage)/////////
extern int16 CPlusPeriod; //正半周标志位0为不处于,1为处于正半周
extern int16 CPlusNum;
extern int16 CMinusNum;
///////////////////////////
/////////LockVolLine(int16 VolLine)/////////
extern int16 VolLineCount; //计数器
//DA
extern int32 ControlCValue;
extern float32 KKKK;
extern int16 RetifyVol;//280v
extern int16 DCDCDown; //DCDC被开掉标志,1表明dcdc在开机状态下被关掉
extern int16 DCDownRelay; //dcdc被关闭后延时1s
extern int16 DCACDown;
extern int32 MachState; //读开关机状态
extern int16 MachCount; //开关机计数器
extern int16 MachIsState; //设备状态,0为关机,1为开机
extern int16 Mturning; //1表示正在关机
extern int16 CurEqualZero;
extern int16 DCADuty;
extern int16 DCBDuty;
//dcdc采样
extern int16 DCAVoltage;
extern int16 DCACurrent;
extern int32 DCAPower;
extern int32 DCPreAPower;
extern int16 DCBVoltage;
extern int16 DCBCurrent;
extern int32 DCBPower;
extern int32 DCPreBPower;
extern int16 MPPTCount; //mppt0.5s定时计数器
extern int16 MPPTIsTrue;//是否进行MPPT标志位
extern int16 MPPTFirstFlag; //第一次标志 ,以后都置0
////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////
//0.1 degree=360000w*s but magnify 10
#define EnergyPtDegree 3600000
//grid frequency
#define GridFreq 50
#define SPeriodNor 400
////////////////////////////////////////////////////////////////////////////
#define Set4094Clk GpioDataRegs.GPASET.bit.GPIO25=1 //4094 clk
#define Set4094Dat GpioDataRegs.GPASET.bit.GPIO19=1 //4094 data
#define Set4094Str GpioDataRegs.GPASET.bit.GPIO30=1 //4094 str
#define Clr4094Clk GpioDataRegs.GPACLEAR.bit.GPIO25=1 //4094 clk
#define Clr4094Dat GpioDataRegs.GPACLEAR.bit.GPIO19=1 //4094 data
#define Clr4094Str GpioDataRegs.GPACLEAR.bit.GPIO30=1 //4094 str
#define SET_DequiverTicksShort 4 // key Dequiver time of short key 18ms*4
//#define LED_A 0x0088
#define LED_C 0x00c6
#define LED_H 0x0089
#define LED_S 0x0092
#define LED_u 0x00e3
#define LED_n 0x00ab
#define LED_P 0x008c
#define LED_a 0x0023
#define LED_F 0x008e
#define LED_I 0x00cf
#define LED_t 0x0087
#define LED_d 0x00a1
#define LED_E 0x0086
#define LED_1 0x00f9
#define LED_2 0x00a4
#define LED_3 0x00b0
#define LED_4 0x0099
#define LED_5 0x0092
#define LED_6 0x0082
#define LED_7 0x00f8
#define LED_8 0x0080
#define LED_9 0x0090
#define LED_0 0x00c0
#define LED_DP 0x0080
#define Led_Bar 0x00bf
#define LED_Null 0x00ff
#define MenuFirstMax 9
#define MenuTwoMax 7
//sample coefficent
#define VolACSampCoef 2555 //0.2555
#define CurACSampCoef 144 //0.0144
#define VolDCSampCoef 147 //0.0147
#define CurDCSampCoef 103 //0.0103
//about operate eeprom
#define SetEESCL GpioDataRegs.GPBSET.bit.GPIO33=1 //24c16 clk
#define SetEESDA GpioDataRegs.GPBSET.bit.GPIO32=1 //24c16 data
#define ClrEESCL GpioDataRegs.GPBCLEAR.bit.GPIO33=1 //24c16 clk
#define ClrEESDA GpioDataRegs.GPBCLEAR.bit.GPIO32=1 //24c16 data
#define EEDeviceAddr 0xa0
#define ByteBits 8
#define EEPROMNUMBER 3 // Programming data buffer, Words
//////////////////////////////
extern Uint16 ADSampIniFlag;
extern int32 CurrAInitSum;
extern int32 CurrInitCount;
extern int16 AdcACOffset;
extern Uint32 SquareStep; //a square step
extern Uint32 VolASquSum; //a voltage square sum
extern Uint32 CurrASquSum; //a current square sum
extern Uint32 DCAVolSum;
extern Uint32 DCACurrSum;
extern Uint32 DCBVolSum;
extern Uint32 DCBCurrSum;
///////////about operate eeprom
extern int32 EnergyLed;
extern Uint16 EnergyAddOne;
extern int16 AdcCOffset;
extern int16 Temperature;
#endif // end of Commondefine.h definition
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -