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

📄 systemdefine.h

📁 MSP430FE42X防窍电电表DEMO(编译器IAR3.42)
💻 H
📖 第 1 页 / 共 2 页
字号:
#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 + -