📄 systemdefine.h
字号:
#include "msp430xe42x.h"
#include "math.h"
#include "EveFlagDef.h"
extern void EventCycHandle(void);
#define PCB_VERSION 1 //0,1
#define TAMPER_DETECTION
//#define WITH_CALIBRATIONED
#if PCB_VERSION == 1
#define I1CT
#endif
//#define I2CT
#define Ib_CAL 10
#define V_CAL 220
#define HICURRENTTIMES 2
#define LOWCURRENTTIMES 0.05
#define VOL_SHOW_TIMES 100
#define CURRENT_SHOW_TIMES 10000
#define defCalPhi -60
#define defCalCosPhi 0.5
#define defCalFreq 50
#define SD16VSFR 1.20 //
#define RV1 990 //
#if PCB_VERSION==0
#define RV2 1.0 //
#else
#define RV2 1.5 //
#endif
#define SD16V1GAIN 1 //
#ifdef I1CT
#define WPRIM 10 //
#define WSEC 0.004 //
#define RCT 20 //
#define SD16I1GAIN 1 //
#else
#define RSH 300 //
#define SD16I1GAIN 16 //
#endif
#ifndef I2CT
#define SD16I2GAIN 16 //
#else
#define SD16I2GAIN 1 //
#endif
#define P1ADPT 1 //
#define P2ADPT 1 //
// DATA_SAVE_TYPE==0: 数据保存在FLASH里
// DATA_SAVE_TYPE==1: 数据保存在EEPROM里
#define DATA_SAVE_TYPE 0
#define NO_NEG_ENGER
#define PULSE_MEASURE_MODE 0
#define PULSE_TIMEA_GEN
#define WITH_START_CURRENT
// ********************************************************************
#define KWH 3600000
#define O_O1KWH 36000
#define EC 1600
#define O_O1KWH_PULS EC/100
#define ENERGY_PULSE_PERIOD 2622
#define SD16FADC 4096
#ifndef PULSE_TIMEA_GEN
#define ECGAIN 1
#else
#define ECGAIN 2 //4,2,1
#endif
#define TIMERA_PULSE_PERIOD 8*ECGAIN
#define REACT_PULSE_CYCLE 4096/ECGAIN * 4/100
#define COMM_BYTE_CYCLE 4096/ECGAIN/2-1;
#define ENERGY_PULSE_THRESHOLD KWH/EC*4096/ECGAIN
//#define ENERGY_PULSE_THRESHOLD KWH/EC*4096
#ifndef PULSE_TIMEA_GEN
#define ENERGY_PULSE_THRESHOLD_100000 460800000000//((float)(ENERGY_PULSE_THRESHOLD)*10000) //11520000000//46080000000 //ENERGY_PULSE_THRESHOLD*1000
#else
#if ECGAIN==4
#define ENERGY_PULSE_THRESHOLD_100000 115200000000
#elif ECGAIN==2
#define ENERGY_PULSE_THRESHOLD_100000 ((unsigned long long)ENERGY_PULSE_THRESHOLD*100000)
//#define ENERGY_PULSE_THRESHOLD_100000 230400000000//115200000000//((float)(ENERGY_PULSE_THRESHOLD)*10000) //11520000000//46080000000 //ENERGY_PULSE_THRESHOLD*1000
#elif ECGAIN==1
#define ENERGY_PULSE_THRESHOLD_100000 460800000000//115200000000//((float)(ENERGY_PULSE_THRESHOLD)*10000) //11520000000//46080000000 //ENERGY_PULSE_THRESHOLD*1000
#endif
#endif
#define POW_2_14 0x004000
#define POW_2_15 0x008000
#define POW_2_16 0x010000
#define POW_2_18 0x040000
#define POW_2_19 0x080000
#define POW_2_20 0x100000
#define POW_2_21 0x200000
#define POW_2_23 0x800000
//PCB_VERSION == 0
//KV1 = 0.018145751953125
//PCB_VERSION == 1
//KV1 = 0.012103271484375
//CT = 10:0.004
//KI1 = 0.002288818359375
//锰铜电阻
//KI1 = 0.003814697265625
//CZ1 = 36098.22908051773407295343755253
//1/CZ1 = 0.000027702189981937408447265625//CT
//CZ1 = 14446.57684493777329297006390851
//1/CZ1 = 0.000069220550358295440673828125//锰铜电阻
#define KV (float)((RV1+RV2)*(SD16VSFR)/RV2/SD16V1GAIN/POW_2_16)
#ifdef I1CT
#define KI1 (float)(WPRIM*SD16VSFR/WSEC/SD16I1GAIN/RCT/P1ADPT/POW_2_16)
#else
#define KI1 (float)(SD16VSFR/SD16I1GAIN/RSH/(1E-6)/P1ADPT/POW_2_16)
#endif
#ifndef I2CT
#define KI2 (float)(SD16VSFR/SD16I2GAIN/RSH/(1E-6)/P2ADPT/POW_2_16)
#else
#define KI2 (float)(WPRIM*SD16VSFR/WSEC/SD16I2GAIN/RCT/P2ADPT/POW_2_16)
#endif
#define KV_100 (float)(KV*100)
#ifndef TAMPER_DETECTION
#define KICOM KI1
#else
#define KICOM 0.002
#endif
#define KICOM_10000 (float)(KICOM*10000)
#define CZ (float)(SD16FADC/(KV*KICOM*4096))
#define CZ_ENERGY (float)(KV*KICOM*4096/SD16FADC)
#define CZ_ENERGY_100000 CZ_ENERGY*100000
#define CZ_POWER (float)(KV*KICOM)
#define CZ_POWER_100 (float)(CZ1_POWER*100)
#ifdef TAMPER_DETECTION
#ifdef WITH_CALIBRATIONED
#define defADAPTI1 0x42A4 //
#define defADAPTI2 0X7A12
#else
#define defADAPTI1 0x493E //
#define defADAPTI2 0X7A12
#endif
#endif
//CZ_ENERGY=0.00003629150390625
//CZ_ENERGY_100000=3.629150390625
#define ENERGY_POWER_FACTOR SD16FADC/4096
#ifdef WITH_START_CURRENT
#define defSET_STARTCURR (0.004 * Ib_CAL)
#define defSET_STARTCURR_INT (unsigned int)((defSET_STARTCURR * 1000 / defIRatio))
#define defSET_STARTCURR_FRAC (unsigned int)((defSET_STARTCURR * POW_2_16 * 1000 / defIRatio) - (POW_2_16 * defSET_STARTCURR_INT))
#else
#define defSET_STARTCURR 0
#define defSET_STARTCURR_INT 0
#define defSET_STARTCURR_FRAC 0
#endif // WITH_START_CURRENT
#define ENERGY_CALC (float)(CZ*Ib_CAL*V_CAL)
//#define ENERGY_CALC_Phi (float)(CZ*Ib_CAL*V_CAL/2)
#define nHIcalc (float)(CZ*Ib_CAL*HICURRENTTIMES*V_CAL)
#define nLOcalc (float)(CZ*Ib_CAL*LOWCURRENTTIMES*V_CAL)
//#define INTRPTLEVL_PLUE (float)(KWH*CZ1/EC) //14284336.477852281366382390928657 //D9F630
#define NORMALFREQUENCE 50
#define NEGENFG0 BIT0
#define NEGENFG1 BIT1
#define TAPERFLG BIT2
#define I2LARGEI1 BIT3
//#define PHASECORR1_INIT (float)(-0.541/NORMALFREQUENCE/360*POW_2_20) //0xFFE1
#if PCB_VERSION==0
#ifdef WITH_CALIBRATIONED
#define PHASECORR1_INIT 0x0031//0x002A//0x003B //0xFFC6 //0
#else
#define PHASECORR1_INIT 0X0000//0x0032//
#endif
#else //#if PCB_VERSION==1
#ifdef WITH_CALIBRATIONED
#define PHASECORR1_INIT 0x003B //0xFFC6 //0
#else
#define PHASECORR1_INIT 0x0000
#endif
#endif
#ifdef TAMPER_DETECTION
#ifndef I2CT
#ifdef WITH_CALIBRATIONED
#define PHASECORR2_INIT 0x0031//0x002A
#else
#define PHASECORR2_INIT 0x0000
#endif
#else
#ifdef WITH_CALIBRATIONED
#define PHASECORR2_INIT 0x003B
#else
#define PHASECORR2_INIT 0x0000
#endif
#endif
#endif
//#define ADAPTI1_INIT (float)(KI1/KICOM*POW_2_14) //0x4444
#define ADAPTI1_INIT defADAPTI1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -