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

📄 uitype.h

📁 基于c的电动机保护程序
💻 H
字号:
#include "MOTOType.h"
#include "hardware_intc.h"


#define FirstTime     1
#define updateTime 1

#define Measure       	0
#define NeedPassword  1	
#define Setting  		2
#define System         3

#define noDot 0
#define hasDot 1


#define setYear   0
#define setDate   1
#define setHM	  2
#define setSecond 3

#define  SelectFunc         0
#define  ValueSetting     1
#define  TimeSetting       2


#define FixingValue         0
#define FixingConfirm       1

#define PasswordInput  2
#define PasswordConfirm 3
#define PasswordSettingValue 0
#define SystemParaSet          4
#define SystemParaSetConfirm    5

#define Measure_StateNum 17  //测量菜单数
#define Protect_StateNum 14   //设定保护功能数

#define Menu_0 StartTime_Menu     
#define Menu_1 OverHeat_Menu               
#define Menu_2 OverLoad_Menu      
#define Menu_3 Block_Menu         
#define Menu_4 OverCurrent_Menu  
#define Menu_5 Current_Low_Menu
#define Menu_6 Unbalance_Menu 
#define Menu_7 PhaseBreak_Menu  
#define Menu_8 Grounding_Menu    
#define Menu_9 Phase_Reversed_Menu
#define Menu_10	Voltage_Low_Menu
#define Menu_11 Voltage_shake_Menu
#define Menu_12 Voltage_Over_Menu
#define Menu_13	PT_Broken_Menu


#define SystemMenu_0  StartSignal_Menu
#define SystemMenu_1  ControlWay_Menu
#define SystemMenu_2  CommunicateAdd_Menu
#define SystemMenu_3  CheckoutWay_Menu   
#define SystemMenu_4  CurrentRating_Menu 
#define SystemMenu_5  VoltageRating_Menu 
#define SystemMenu_6    CT_Menu          
#define SystemMenu_7 	  D1_Menu          
#define SystemMenu_8 	D2_Menu					   
#define SystemMenu_9 	D3_Menu				     
#define SystemMenu_10	D4_Menu				     
#define SystemMenu_11	D5_Menu				     
#define SystemMenu_12 D6_Menu				     
#define SystemMenu_13	  D7_Menu          
#define SystemMenu_14	D8_Menu            
#define SystemMenu_15    Time_Menu
#define SystemMenu_16    SaveValue_Menu
#define SystemMenu_17    LoadValue_Menu			      

#define TimeValue 1
#define CurrentMultipleValue 2
#define VoltageMultipleValue 3
#define Func 4
	
/********************设定中用到的电流电压倍数*******/
typedef struct
{
	//第一位存倍数  第二位存堵转电流定值地址
	float 
		Block_Current[2],   //堵转
		Over_Current_I[2],  //过流一段
		Over_Current_II[2],  //过流二段
		Low_Current[2],    //欠流
		I0[2],             //零序
		Low_Voltage[2],    //欠压
		Over_Voltage[2];    //过压
}_Value_Parameter;


/******************************系统参数菜单结构体*******/
typedef struct
{
	
	unsigned long *NodeNext;
	unsigned long *NodePre;
	U16 symbolData[2];	
	
	int	MenuNum;
	int MenuType;   //功能选择 或者是数值设定或者是时间
	int BitNeedSet;
	
	int ValueRange;       //功能选择的最大数 或者数值设定时的范围
	int DotEnable;     //1有小数点,0无小数点设置的时候是整数
	int  *dataAdd;     //数据地址  若是时间,则是年的地址
	
	
}System_Menu_Struct;




/******************************设定功能顶层菜单结构体*******/
typedef struct
{
	
	unsigned long *NodeNext;	
	U16 symbolData[2];
	int BitNeedSet;
	int	MenuNum;
	
	float  *data[3];
	
}Menu_Top_Struct;




/******************************设定功能子菜单结构体*******/

typedef struct
{
	unsigned long  *NodeNext;
	
	U16 symbolData[2];
	int BitNeedSet;

	float *dataAdd;
	int parameter;
}SubMenu_Struct;

/**************************菜单状态结构体**************/
typedef struct
{
	int
		Func_Select,   //测量或者设置选择
		Protect_Select,    //显示和设定 的内容 主菜单选择
		Menu_Num,       // 子菜单总数
		Menu_Level,      // 当前子菜单号
		Cursor,          //光标位置 0_1_2_3
		Bit_NeedSet,     // 需要修改的位数
		TimeSetting_Level;   //设定时间时的状态(日期或者时间 等等)
	U16
		LED_1,
		LED_2,
		LED_3,
		LED_4;           //数码管数据
	 int 
		Up_Flag,        //上下键按键标志
	        
		Down_Flag,
		Enter_Flag;    //上下键按键标志

	unsigned long  *ActiveMenuAdd;   //当前菜单的结构体地址
	unsigned long  *PreMenuAdd;   //上一个菜单的结构体地址

}MenuStatus_Struct;

enum 
{
		offset_Func_Select,   //测量或者设置选择
		offset_Protect_Select,    //第几种保护功能    菜单第一层;
		offset_Menu_Num,
		offset_Menu_Level,
		offset_Cursor,
		offset_Bit_NeedSet,


		offset_LED_1,
		offset_LED_2,
		offset_LED_3,
		offset_LED_4,          //数码管数据

		offset_UP_flag,
		offset_DOWN_flag,
		offset_ActiveMenuAdd
};

/*************************菜单状态结构体地址*******************/
//#define MenuStatusAdd   (int *)(0x1fff0000 + 0x600)
//MenuStatus_Struct  *MenuStatus = (MenuStatus_Struct *) (0x1fff0000 + 0x800);

/********************************************************************************/
#define Func_Select             (MenuStatus -> Func_Select)
#define Protect_Select          (MenuStatus -> Protect_Select)

#define Menu_Num                (MenuStatus -> Menu_Num)
#define Menu_Level              (MenuStatus -> Menu_Level ) 
#define Cursor                  (MenuStatus -> Cursor ) 
#define Bit_NeedSet             (MenuStatus -> Bit_NeedSet) 

#define TimeSetting_Level       (MenuStatus -> TimeSetting_Level)

#define LED_1             (MenuStatus -> LED_1)
#define LED_2             (MenuStatus -> LED_2 )
#define LED_3             (MenuStatus -> LED_3 )
#define LED_4             (MenuStatus -> LED_4 )          //数码管数据

#define Up_Flag                 (MenuStatus -> Up_Flag)
#define Down_Flag               (MenuStatus -> Down_Flag)   
#define Enter_Flag               (MenuStatus -> Enter_Flag)

#define ActiveMenuAdd           (MenuStatus -> ActiveMenuAdd)
#define PreMenuAdd          	 (MenuStatus -> PreMenuAdd) 










/***********************************菜单状态*********************/



/*****************************************************************************
#define Func_Select             (*(MenuStatusAdd+offset_Func_Select))
#define Protect_Select              (*(MenuStatusAdd+offset_Protect_Select))
#define Menu_Num                (*(MenuStatusAdd+offset_Menu_Num)) 
#define Menu_Level              (*(MenuStatusAdd+offset_Menu_Level )) 
#define Cursor                  (*(MenuStatusAdd+offset_Cursor )) 
#define Bit_NeedSet             (*(MenuStatusAdd+offset_Bit_NeedSet) )

#define LED_1             (*(MenuStatusAdd+offset_LED_1))
#define LED_2             (*(MenuStatusAdd+offset_LED_2 ))
#define LED_3             (*(MenuStatusAdd+offset_LED_3 ))
#define LED_4             (*(MenuStatusAdd+offset_LED_4 ))           //数码管数据

#define UP_flag                 (*(MenuStatusAdd+offset_UP_flag)) 
#define DOWN_flag               (*(MenuStatusAdd+offset_DOWN_flag) )  

#define ActiveMenuAdd           (*(MenuStatusAdd+offset_ActiveMenuAdd) ) 
************************************************************************/












/****************************测量值显示菜单内容的结构体*****************/


typedef struct
{
	
	float *DataAdd[20];       //第0 个显示的数据的地址
	

U16 Symbol_Segment[40];   //标号的数码管段值

}Measure_Display_Data_Struct;

#define  MeasureDisplayData_Add   ( float *)0x1fff1000
#define  Symbol_Segment     Measure_Display_Data->Symbol_Segment


/*******************************************************************************/

extern  unsigned long * MenuNode_Scan(int node1,int node2 );
extern void Float2Led(float value,U16 Float2LedValue[3]);
extern unsigned short  ledBuff[4];
extern int runTimes;
extern int Led2Int(U16);
extern int	keyNum;
extern float LedResultTemp[3];
extern float LedResult;
extern int passwordInputTimes;
extern U16 FixValueTemp[4];
extern MenuStatus_Struct  *MenuStatus;
extern int pdelaytime;
extern _SystemSetting  SystemSetting;

extern System_Menu_Struct   ControlWay_Menu,
					CommunicateAdd_Menu,
					CheckoutWay_Menu,
					CurrentRating_Menu,
					VoltageRating_Menu,
					
					Time_Menu;
void Fixed_Initial(void);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -