📄 ddj.h
字号:
void SCIInit();
void TimerInit();
void ADCInit();
void DSPInit(void);
void delay(int);
void softwareinit();
unsigned long ex_feedbk(unsigned long int dingzhi); /*计算过量返回值*/
void ReadBHDingZhip(void);
void WriteBHDingZhi(void);/*往EEPROM中写保护定值*/
void DingZhiXiuGai();
unsigned long int DingZhiP[38];
unsigned long int DingZhi[38];
float Fzhz;
//故障逻辑过程函数及变量
//void CKLJ(); /*电压时间型和电压电流时间型处理控制逻辑*/
//void GZGLKG(); /*故障隔离开关*/
void GZJCSuanFaLJ(); /*故障检测算法逻辑*/
//int KaiGuan1HZOne_flag=0; /*合闸一次检测--1有效*/
int KaiGuan1HZover_flag=0;
int KaiGuan1FZover_flag=0;
int ADDfirstFW_flag=0; /*开关分位,A侧首次带电标记--1有效*/
int BDDfirstFW_flag=0; /*开关分位,B侧首次带电标记--1有效*/
int ABDDfirstHW_flag=0; /*开关合位,首次带电标记--1有效*/
int DD_flag=0x000;
int ABiSuo_flag=0; /*A 向闭锁标记--1有效*/
int BBiSuo_flag=0; /*B 向闭锁标记--1有效*/
int LLqd_flag=0; /*联络允许--1有效*/
long int T1_timer=0; /*逻辑T1时限--T1*/
long int T2_timer=0; /*逻辑T2时限--T2*/
long int T21_timer=0;
long int T22_timer=0;
long int T3_timer=0; /*逻辑T3时限--T3*/
long int YYtimer=0; /*瞬时加压--38(150ms)*/
//long int GZGLMaiKuantimer=0; /*故障隔离继电器脉冲宽度*/
int step_flag=0;
int YYtimerqd_flag=0;
int T1_timerqd_flag=0;
//int GZGLMaiKuantimerqd_flag=0;
int T2_timer_flag=0;
int T3_timerqd_flag=0;
//通讯模块定义
#define _REQUIRE 0x04
#define _COMPLETE 0xa5
void (*FuncPtr)();
void made_resetlianlu();
void made_dingzhi();
void made_endrequire();
void made_execute();
void made_cancle();
void made_choise();
void made_reset();
void made_resetcu();
void made_time();
void made_soe();
void made_statuschange();
void made_signal1();
void made_signal2();
void made_dzchenggong();
void made_dzshibai();
void made_lubo();
void made_endlianlu();
void DingZhiLoad();
void dealdata();
unsigned int isrepeat();
unsigned int isreqiredata();
unsigned int dealcommand();
void resend(void);
void made_zongzhaocom();
void made_messure3();
void made_messure2();
void made_messure1();
void made_measurechange();
void made_nodata();
void made_netstatus();
unsigned int ADC; //控制域中ADC位
unsigned int DFC=0;
unsigned int DCS;
unsigned int QUEST;
unsigned int ACT;
unsigned int len_flag=0;
unsigned int len=0;
unsigned int JS_counter=0;
unsigned int CSDian_flag=0;
unsigned int SOEFind_flag=0;
unsigned int TwoData_flag=0;
unsigned int DingZhiZhen_changdu,ZuHao;
unsigned int xfdzchenggong_flag;
unsigned int DingZhiXiuGai_flag[6];
unsigned int YCNum;
unsigned int cImVala[31],cImValp[31],cImValb[31];
unsigned int cImVal[77];
unsigned int receive_data[256]; /* 接收缓冲区 */
unsigned int receive_datap[256];//临时接收缓冲
unsigned int senddata[256]; /* 发送缓冲区 */
unsigned int FCB; /* 控制域 */
unsigned int BS=0;
unsigned int control_flag; /* 控制状态 */
unsigned int flag_485; /* 一个完整接收——发送过程的执行状态 */
unsigned int GUreset_flag=0;
unsigned int CPUreset_flag=0x5555;
unsigned int resetcu_flag=0x5555;
unsigned int dataIndex;
unsigned int XinXiADDr;
unsigned int channel; /* 上位机遥控命令的通道号 */
unsigned int d_command_status; /* 上位机遥控命令的双点信息 */
unsigned int YaoXin[16],YaoXinp[16];
unsigned int YaoXin0,YaoXin1,YaoXin2,YaoXin3,YaoXin4,YaoXin5,YaoXin6,YaoXin7;
unsigned int YaoXin8,YaoXin9,YaoXin10,YaoXin11,YaoXin12,YaoXin13,YaoXin14,YaoXin15;
unsigned int soe_xuhao[17];
unsigned int soe_value[17];
unsigned int soe_millisecond[17];
unsigned int soe_second[17];
unsigned int soe_minute[17];
unsigned int soe_day[17];
unsigned int soe_hour[17];
unsigned int soe_month[17];
unsigned int soe_year[17];
unsigned int soe_no;
unsigned int send_length=1;
unsigned int senddata_length=0;
unsigned int senddata_over=0xaaaa;
///SPI读写操作
//补偿寄存器定义
//与0X80进行或运算,(因bit7=1表示命令,用于更新校表数据)
/*
#define Iregion1 0x02
#define Iregion2 0x03
#define Iregion3 0x04
#define Iregion4 0x05
#define PgainA0 0x06//
#define PgainB0 0x07
#define PgainC0 0x08
#define PgainA1 0x09
#define PgainB1 0x0A
#define PgainC1 0x0B
#define PhsregA0 0x0C
#define PhsregA1 0x0D
#define PhsregA2 0x0E
#define PhsregA3 0x0F
#define PhsregA4 0x10
#define PhsregB0 0x11
#define PhsregB1 0x12
#define PhsregB2 0x13
#define PhsregB3 0x14
#define PhsregB4 0x15
#define PhsregC0 0x16
#define PhsregC1 0x17
#define PhsregC2 0x18
#define PhsregC3 0x19
#define PhsregC4 0x1A
#define UgainA 0x1B
#define UgainB 0x1C
#define UgainC 0x1D
#define Iregchg 0x1E
#define Istartup 0x1F
#define HFConst 0x20
#define IgainA 0x26
#define IgainB 0x27
#define IgainC 0x28
#define FailVoltage 0x29
#define EnergyAddMode 0x2A
*/
#define Iregion1 0x82
#define Iregion2 0x83
#define Iregion3 0x84
#define Iregion4 0x85
#define PgainA0 0x86//
#define PgainB0 0x87
#define PgainC0 0x88
#define PgainA1 0x89
#define PgainB1 0x8A
#define PgainC1 0x8B
#define PhsregA0 0x8C
#define PhsregA1 0x8D
#define PhsregA2 0x8E
#define PhsregA3 0x8F
#define PhsregA4 0x90
#define PhsregB0 0x91
#define PhsregB1 0x92
#define PhsregB2 0x93
#define PhsregB3 0x94
#define PhsregB4 0x95
#define PhsregC0 0x96
#define PhsregC1 0x97
#define PhsregC2 0x98
#define PhsregC3 0x99
#define PhsregC4 0x9A
#define UgainA 0x9B
#define UgainB 0x9C
#define UgainC 0x9D
#define Iregchg 0x9E
#define Istartup 0x9F
#define HFConst 0xa0
#define IgainA 0xa6
#define IgainB 0xa7
#define IgainC 0xa8
#define FailVoltage 0xa9
#define EnergyAddMode 0xaA
/*-----------------------------------------------------------------------------------
I2C子程序相关定义
-------------------------------------------------------------------------------------*/
/*I2C操作*/
#define SDA_1() {PFDATDIR = PFDATDIR|0x2000;PFDATDIR = PFDATDIR|0x0020;} /* SDA_1( ) */
#define SDA_0() {PFDATDIR = PFDATDIR|0X2000;PFDATDIR = PFDATDIR&0XFFDF;} /* SDA_0( ) */
#define SCL_1() {PFDATDIR = PFDATDIR|0X0100;PFDATDIR = PFDATDIR|0X0001;} /* SCL_1( ) */
#define SCL_0() {PFDATDIR = PFDATDIR|0X0100;PFDATDIR = PFDATDIR&0XFFFE;} /* SCL_0( ) */
void writeI2C();
void readI2C();
void I2C_delay(void);
void I2CStart(void);
void I2CStop(void);
int WaitAck(void);
void SendAck(void);
void SendNotAck(void);
void I2CSendByte(int ch);
int I2CReceiveByte(void);
/*时钟*/
void SetPCF8583();
void GetPCF8583();
void PCF8583Init_time();
void SetTimeToPCF8583();
void GetTimeFromPCF8583();
void write_iic(unsigned int timetype,unsigned int value);
void transmit(unsigned int ch);
void read_iic();
void slave_ack();
void tingzhi();
void start();
unsigned int receive();
void iic_dly();
void master_ack();
void no_ack();
unsigned int millisecond_set,millisecond_get;
unsigned int millisecond_gewei;
unsigned int millisecond_js=0;
unsigned int second_set,second_get;
unsigned int minute_set,minute_get;
unsigned int hour_set,hour_get;
unsigned int week_set,week_get;
unsigned int day_set,day_get;
unsigned int month_set,month_get;
unsigned int year_set,year_get;
unsigned int yearflag=0;
unsigned int Time[32];
unsigned int DiShiQi_1S=0;
/*-----------------------------------------------------------------------------------
其它子程序相关定义
-------------------------------------------------------------------------------------*/
/*延时*/
void ys(unsigned int sum);
void YaoTiaoDingZhiP(void);
void YiaoTiaoIni(void);
float Fzhzold1,Fzhzold2;
int Fzhztimer=0;
unsigned int repare_he=0x5555;
unsigned int repare_fen=0x5555;
/*-----------------------------------------------------------------------------------
测试程序相关定义
-------------------------------------------------------------------------------------*/
int qq;
void send_data(int num);
unsigned int fstwo_flag=0xaa;//用来轮换发送二级数据遥测和SOE顺序
unsigned int JDQqudou_timer=0;//去抖计数器
unsigned int JDQqudou_flag=0x5555;
void JDQ_doudong(unsigned int qudou_x,unsigned int qudou_y);//去抖
/*-----------------------------------------------------------------------------------
测试程序相关定义
-------------------------------------------------------------------------------------*/
int qq;
void send_data(int num);
//unsigned int senddata_over=0xaaaa;
int cao[50];
int tempcao=0;
//int caobak[24]={30000,37765,45000,51213,55981,58978,60000,58978,55981,51213,45000,37765,30000,22235,15000,8787,4019,1022,0,1022,4019,8787,15000,22235};
//int caobak1[24]={30000,37765,45000,51213,55981,58978,60000,58978,55981,51213,45000,37765,30000,22235,15000,8787,4019,1022,0,1022,4019,8787,15000,22235};
//int caobak[24]={30000,30776,31500,32121,32598,32897,33000,32898,32598,32121,31500,30776,30000,29224,28500,27879,27402,27102,27000,27102,27401,27879,28500,29224};
//int caobak1[24]={30000,30776,31500,32121,32598,32897,33000,32898,32598,32121,31500,30776,30000,29224,28500,27879,27402,27102,27000,27102,27401,27879,28500,29224};
int caobak[24]={30000,30155,30300,30424,30520,30580,30600,30580,30520,30424,30300,30155,30000,29844,29700,29576,29480,29420,29400,29420,29480,29576,29700,29845};
int caobak1[24]={30000,30155,30300,30424,30520,30580,30600,30580,30520,30424,30300,30155,30000,29844,29700,29576,29480,29420,29400,29420,29480,29576,29700,29845};
int testlgc=0;
int ADjgpt_pt;
int a,b;
long int tempr,tempi;
unsigned long int tempIr,tempIi;
unsigned int timer1t,timer2t,testlgc1,testlgc2[20],t=0;
#define CAO_SHOUDIZHI *(int *)0x09C0
#define AR_DIZHI *(int *)0x0C80
//X5643
#define en_wstatus 0x01 //写状态寄存器相应指令代码
#define en_writead 0x02 // 向指定地址单元写数
#define en_readad 0x03 // 从指定地址读数指令代码
#define res_wel 0x04 //复位写使能指令代码
#define en_rstatus 0x05 //读状态寄存器指令代码
#define en_wel 0x06 //写使能指令代码
//void delay(int );
void init_X5643();//初始化与串行EEPROM有关的寄存器
void X5643_send(int data);
void X5643_enable(void);
void X5643_R_busy();
int X5643_recieve();
void X5643_write(int addr, int data_w);
int X5643_read(int addr);
void delay(int );
//屏幕相关变量
#define CZP_linenum 6
unsigned int CZP_line,status,current_screen,CZP_display_flag,xianshi_display_flag;
unsigned int xianshi_line,dingzhi_display_flag,kouling_display_flag,canshu_display_flag;
unsigned int cursor_pw,dingzhi_set_flag,DZP_line,suduan_display_flag,guodianya_display_flag;
unsigned int kouling_set_flag,CS_line;
unsigned int bupingheng_display_flag,ziqidong_display_flag,tiaoya_display_flag,fenpin_display_flag;
unsigned int DZP_line;
void KaiJiPing(void);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -