⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 commondefine.h

📁 2808单相全桥spwm逆变工程.rar
💻 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 + -