📄 user.h
字号:
/********************************************************
* 文件名:user.h
* 说明: 该文件中定义全局变量
* 程序员:崔晶
* 日期: 2003.6.2
*********************************************************/
//定义采样点数
#define N 32
//N=2**M
#define M 5
#define pi 3.1416
//-----------------------------------------------------------------------------------
//定义三相电流、电压,励磁电压、励磁电流的采样结果保存数组,放在DARAM的B0块中,起始地址2000h
//-----------------------------------------------------------------------------------
#pragma DATA_SECTION(ia, ".user0")
int ia[N]={2730, 1755, 712, -358, -1414, -2416, -3325, -4107, -4730, -5172,
-5415, -5450, -5276, -4899, -4333, -3601, -2731, -1756, -713, 357,
1413, 2415, 3324, 4106, 4729, 5171, 5414, 5449, 5275, 4898,
4332, 3600};
/*{-9831, 1981, 15589, 9817, 4857, 9477, 6492, 1347, 7431, 5642,
-13141, -17918, 223, 9093, 2441, 3895, 9830, 6109, 6785, 15399,
8249, -8480, -2654, 16775, 18782, 12480, 16979, 18915, 12883, 16123,
19933, 4196};*/
#pragma DATA_SECTION(ib, ".user0")
int ib[N]={9830, 6109, 6785, 15399, 8249, -8480, -2654, 16775, 18782, 12480,
16979, 18915, 12883, 16123, 19933, 4196, -9831, 1981, 15589, 9817,
4857, 9477, 6492, 1347, 7431, 5642, -13141, -17918, 223, 9093,
2441, 3895};
#pragma DATA_SECTION(ic, ".user0")
int ic[N]={9830, 3895, 2441, 9093, 223, -17918, -13141, 5642, 7431, 1347,
6492, 9477, 4857, 9817, 15589, 1981, -9831, 4196, 19933, 16123,
12883, 18915, 16979, 12480, 18782, 16775, -2654, -8480, 8249, 15399,
6785, 6109};
#pragma DATA_SECTION(ua, ".user0")
int ua[N]={6553, 6427, 6054, 5449, 4634, 3640, 2507, 1278, 0, -1279,
-2508, -3641, -4635, -5450, -6055, -6428, -6554, -6428, -6055, -5450,
-4635, -3641, -2508, -1279, -1, 1278, 2507, 3640, 4634, 5449,
6054, 6427};
/*{24576, 18304, 17119, 25524, 13984, -9672, -5170, 16408, 16384, 6245,
9967, 10918, 2399, 5995, 10849, -8191, -24576, -8191, 10849, 5995,
2399, 10918, 9967, 6245, 16383, 16408, -5170, -9672, 13984, 25524,
17119, 18304};*/
#pragma DATA_SECTION(ub, ".user0")
int ub[N]={12288, 7637, 8481, 19249, 10312, -10600, -3318, 20969, 23478, 15600,
21224, 23644, 16104, 20154, 24917, 5245, -12288, 2477, 19487, 12271,
6071, 11846, 8115, 1684, 9289, 7053, -16426, -22397, 279, 11366,
3051, 4868};
#pragma DATA_SECTION(uc, ".user0")
int uc[N]={12288, 4868, 3051, 11366, 279, -22397, -16426, 7053, 9289, 1684,
8115, 11846, 6071, 12271, 19487, 2477, -12289, 5245, 24917, 20154,
16104, 23644, 21224, 15600, 23478, 20969, -3318, -10600, 10312, 19249,
8481, 7637};
#pragma DATA_SECTION(irf, ".user0")
//-----------------------------------------------------------------------------------
int irf[N]={0};
#pragma DATA_SECTION(uf, ".user0")
int uf[N]={0};
//-----------------------------------------------------------------------------------
//定义FFT结果的保存数组,放在B1块,起始地址3000h
//-----------------------------------------------------------------------------------
#pragma DATA_SECTION(intest, ".user1")
int intest[2*N]={0};
//-----------------------------------------------------------------------------------
//FFT分析结果保存数组
//-----------------------------------------------------------------------------------
int iaout[2*N]={0};
int ibout[2*N]={0};
int icout[2*N]={0};
int uaout[2*N]={0};
int ubout[2*N]={0};
int ucout[2*N]={0};
//-----------------------------------------------------------------------------------
//三相电压、电流的均方根值
//-----------------------------------------------------------------------------------
int ia_rms=0,ib_rms=0,ic_rms=0,ua_rms=0,ub_rms=0,uc_rms=0;
int pa=0,pb=0,pc=0,pall=0;
//-----------------------------------------------------------------------------------
//全波富立叶算法得到的三相电压、电流的实部、虚部
//-----------------------------------------------------------------------------------
int ia_real=0,ia_imag=0,ib_real=0,ib_imag=0,ic_real=0,ic_imag=0;
int ua_real=0,ua_imag=0,ub_real=0,ub_imag=0,uc_real=0,uc_imag=0;
//-----------------------------------------------------------------------------------
//三相电压、电流的相角
//-----------------------------------------------------------------------------------
unsigned int phi_ia,phi_ua,phi_ib,phi_ub,phi_ic,phi_uc,phi_a,phi_b,phi_c;
//-----------------------------------------------------------------------------------
//定义标志位
//-----------------------------------------------------------------------------------
unsigned char flag_ad=0; //N点A/D采样结束标志位
//-----------------------------------------------------------------------------------
//data for 32 points FFT
//sample function: x=1/4+1/4cos(3*2*pi*f*t)-1/4cos(6*2*pi*f*t)+1/4cos(9*2*pi*f*t);
//f=50Hz
//-----------------------------------------------------------------------------------
int indatr[N]={16384, 10270, 9551, 18713, 8192, -14223, -8304, 14810, 16384, 7843,
13102, 15469, 8192, 12807, 18418, -157, -16384, -157, 18418, 12807,
8191, 15469, 13102, 7843, 16383, 14810, -8304, -14223, 8192, 18713,
9551, 10270
};
//32点FFT的sin 表
//---------------------------------------------------------------
const int sintab[N]={
0x7FFF,0x0000,0x7D89,0xE708,0x7640,0xCF05,0x6A6C,0xB8E4,
0x5A81,0xA57F,0x471C,0x9594,0x30FB,0x89C0,0x18F8,0x8277,
0x0000,0x8001,0xE708,0x8277,0xCF05,0x89C0,0xB8E4,0x9594,
0xA57F,0xA57F,0x9594,0xB8E4,0x89C0,0xCF05,0x8277,0xE708,
};
//32点全波富立叶算法的sin和cos 表,Q15格式
//---------------------------------------------------------------
int sintabf[N]={
0,6392,12539,18204,23170,27245,30273,32138,32767,32138,
30273,27245,23170,18204,12539,6392,0,-6393,-12540,-18205,
-23171,-27246,-30274,-32139,-32767,-32139,-30274,-27246,
-23171,-18205,-12540, -6393
};
int costabf[N]={
32767,32138,30273,27245,23170,18204,12539,6392,0,-6393,
-12540,-18205,-23171,-27246,-30274,-32139,-32767,-32139,
-30274,-27246,-23171,-18205,-12540,-6393,-1,6392,12539,
18204,23170,27245,30273,32138,
};
/**********************I2C子程序用到的变量********************/
/*00h:控制字00,02-03h秒(XXXX,XXXX),分((XXXX,XXXX),*/
/*04-05h;时(XXXX,XXXX),年(XX),日期(XX,XXXX),06h;星期(XXX),月份(X,XXXX)*/
unsigned int time[5];////读出的时间time[0]年(XXXX XXXX XXXX XXXX)、time[1]月(XXXX XXXX)日(XXXX XXXX)、
////time[2]星期(0000 XXXX)时(XXXX XXXX)、time[3]分(XXXX XXXX)秒(XXXX XXXX)
unsigned int pcf_data[8];
unsigned int year_base;
unsigned int chtime[4];//写日历时钟
unsigned int prom_data[50]; //写EEPROM的暂时寄存器
unsigned int SET_SAVE_Flag=0; //向eeprom中写定值标志
unsigned int SET_SAVE_Timer=0;
//////////////////////////////////////
unsigned int source[6]={0x22,0x18,0x05,0x09,0x06,0x01};
unsigned int result[6];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -