Sub_Sys.h

#ifndef __SUB_SYS_H__
#define __SUB_SYS_H__

#include "sys.h"

#define Sys_Falut_Run_Disable               0//故障时是否停机 0:开机  1:停机
#define Open_Door_Mode_Run_Enble            0//是否启用开门模式  

#define LED_Power_ON      GPIO_ResetBits(GPIOB,GPIO_Pin_12);//Gpio_ClrIO(GpioPortB, GpioPin12); 
#define LED_Power_OFF     GPIO_SetBits(GPIOB,GPIO_Pin_12);//Gpio_SetIO(GpioPortB, GpioPin12);

#define LED_FAN_ON        GPIO_ResetBits(GPIOB,GPIO_Pin_13);//Gpio_ClrIO(GpioPortB, GpioPin13); 
#define LED_FAN_OFF       GPIO_SetBits(GPIOB,GPIO_Pin_13);//Gpio_SetIO(GpioPortB, GpioPin13);

#define LED_Cold_ON       GPIO_ResetBits(GPIOB,GPIO_Pin_14);//Gpio_ClrIO(GpioPortB, GpioPin14); 
#define LED_Cold_OFF      GPIO_SetBits(GPIOB,GPIO_Pin_14);//Gpio_SetIO(GpioPortB, GpioPin14);


#define LED_Warning_ON    GPIO_ResetBits(GPIOB,GPIO_Pin_15);//Gpio_ClrIO(GpioPortB, GpioPin15); 
#define LED_Warning_OFF   GPIO_SetBits(GPIOB,GPIO_Pin_15);//Gpio_SetIO(GpioPortB, GpioPin15);

#define LED_Set_ON        GPIO_ResetBits(GPIOA,GPIO_Pin_8);//Gpio_ClrIO(GpioPortA, GpioPin8); 
#define LED_Set_OFF       GPIO_SetBits(GPIOA,GPIO_Pin_8);//Gpio_SetIO(GpioPortA, GpioPin8);

#define Buzzer_ON         GPIO_SetBits(GPIOC,GPIO_Pin_13);//Gpio_SetIO(GpioPortC, GpioPin13);
#define Buzzer_OFF        GPIO_ResetBits(GPIOC,GPIO_Pin_13);//Gpio_ClrIO(GpioPortC, GpioPin13); 

#define RS485_RX          GPIO_ResetBits(GPIOB,GPIO_Pin_11);//Gpio_ClrIO(GpioPortB, GpioPin11); 
#define RS485_TX          GPIO_SetBits(GPIOB,GPIO_Pin_11);//Gpio_SetIO(GpioPortB, GpioPin11);

#define Comm_RX_Read_Cmd           0x03//读取寄存器
#define Comm_RX_Write_Multiple_CMD 0x10//多个字节写入
//制冷模式
#define Sys_Waitling                0//待机
#define Cold_Mode                   1//制冷
#define Saft_Mode                   2//安全模式
#define Open_Door_Mode              3//开门模式

#define Over_Voltage_Error          1//过压故障
#define Under_Voltage_Error         2//欠压故障
#define Soft_Over_Current_Error     3//软件过流故障
#define Soft_Over_Current_Error     3//软件过流故障
#define Hardware_Over_Current_Error 4//硬件过流故障
#define Over_Temp_Error             5//驱动器Mos过温故障
#define Phase Loss_Error            6//输出缺相故障
#define Stall_Error                 7//堵转故障
#define Comm_Error                  8//通讯故障
#define Pressure Switch_Error       9//压力开关或者排气过温故障
#define Compressor_Over_Temp_Error  10//压缩机过温
#define Board_Temp_Sensor_Error     11//柜内温度传感器故障
#define Mos_Temp_Sensor_Error       12//Mos温度传感器故障

//键值
#define Power_Key_Bit      1
#define Inquire_Key_Bit    1<<1
#define Rev_Key_Bit        1<<2
#define Set_Key_Bit        1<<3
#define Up_Key_Bit         1<<4
#define Down_Key_Bit       1<<5

#define Power_Key_Long     100+1
#define Inquire_Key_Long   100+(1<<1)
#define Rev_Key_Long       100+(1<<2)
#define Set_Key_Long       100+(1<<3)
#define Up_Key_Long        100+(1<<4)
#define Down_Key_Long      100+(1<<5)

#define Menu_Max_Num       FMenu_Max_Num+CMenu_Max_Num+LMenu_Max_Num//所有菜单数量

#define FMenu_Max_Num      25//F菜单数量

#define CMenu_Max_Num      25//C菜单数量

#define LMenu_Max_Num      25//L菜单数量

//数据存储起始地址
#define Menu_Save_Start_Adss           0x08007800//数据存储在125扇区
#define MenuF_Save_Start_Adss          0x08007800//F组数据存储起始地址
#define MenuL_Save_Start_Adss          0x08007800+0x200//L组数据存储起始地址
//数据初始化标志存储地址
#define Menu_Para_Init_Flag_Adss       0x08007C00//数据存储在126扇区
//数据校验位存储地址
#define Menu_Para_Sum_Adss             MenuL_Save_Start_Adss+0x100//数据校验码存储地址

#define MenuF_Backup_Start_Adss        0x0800F000//数据备份存储在125扇区
#define MenuL_Backup_Start_Adss        0x0800F000+0x200//数据备份存储在125扇区

#define Menu_Backup_Sum_Adss           MenuL_Backup_Start_Adss+0x100//数据校验码存储地址


#define PLC_RAM8(x)                    (*(uint8_t*)(uint32_t)(x))				//字节方式	R/W RAM	R ROM
#define PLC_RAM16(x)                   (*(uint16_t*)(uint32_t)(x))				//半字方式	R/W RAM	R ROM

#define  USART2_SEND_BUFFER_LEN      300
#define  USART2_RX_BUFFER_LEN        300

/** generic error codes */
typedef enum en_result
{
    Ok                          = 0u,  ///< No error
    Error                       = 1u,  ///< Non-specific error code
    ErrorAddressAlignment       = 2u,  ///< Address alignment does not match
    ErrorAccessRights           = 3u,  ///< Wrong mode (e.g. user/system) mode is set
    ErrorInvalidParameter       = 4u,  ///< Provided parameter is not valid
    ErrorOperationInProgress    = 5u,  ///< A conflicting or requested operation is still in progress
    ErrorInvalidMode            = 6u,  ///< Operation not allowed in current mode
    ErrorUninitialized          = 7u,  ///< Module (or part of it) was not initialized properly
    ErrorBufferFull             = 8u,  ///< Circular buffer can not be written because the buffer is full
    ErrorTimeout                = 9u,  ///< Time Out error occurred (e.g. I2C arbitration lost, Flash time-out, etc.)
    ErrorNotReady               = 10u, ///< A requested final state is not reached
    OperationInProgress         = 11u  ///< Indicator for operation in progress
} en_result_t;

typedef struct
{
	uint16_t LED_BIT1;
	uint16_t LED_BIT2;
	uint16_t LED_BIT3;
	uint16_t LED_BIT4;
	uint16_t LED_Dis_Buffer[5];
  uint16_t LED_Dis_Num;
  uint16_t LED_Dis_Num_Point;
	uint16_t LED_Dis_Num_Bit;
}Dis_Struct;

extern Dis_Struct Dis_Val;

struct Dis_BITS
{     
    uint16_t LEDA:1;     
    uint16_t LEDB:1;     
    uint16_t LEDC:1;    
    uint16_t LEDD:1; 	
    uint16_t LEDE:1;       
    uint16_t LEDF:1;
	  uint16_t LEDG:1;
	  uint16_t LEDH:1;
    uint16_t rsvd:8;  
};

union Dis_Union
{
    uint16_t all;
    struct Dis_BITS bit; 
};

extern  union Dis_Union Dis_Bits; 

typedef struct
{
	uint16_t Key_Num;//键值
	uint16_t Buzzer_Drv_Time;//蜂鸣器运行时间
	int16_t  Board_Temp;//柜内温度
	uint16_t Sys_Run_Mode;//系统运行模式
	uint16_t Sys_Run_Enable;//系统运行	
	uint16_t Compressor_Run_Enable;//压缩机运行
	uint16_t Compressor_Run_Speed;//压缩机运行速度
	uint16_t OUT_Door_Fan_Run_Enable;//室外风机运行
	uint16_t InDoor_Fan_Run_Enable;//室内风机运行
	uint16_t Fault_Record_Reset;//故障记录清零
	uint16_t Fault_Code;//故障代码
	uint16_t Warning_Code;//警告代码
	uint16_t Compressor_Allow_Run_Flag;
	uint16_t Aim_Temp_Arrived_Delay;
	uint16_t Compressor_Run_Frq_Level;//运行频率
	uint16_t Compressor_Run_Frq_Change_Flag;//压缩机运行频率改变标志
	uint16_t Rs485_Comm_OK_Flag;
	uint32_t On_Time;//上电时间 单位秒
	uint16_t Buzzer_Fault_Reset;//故障时蜂鸣器复位
	uint16_t Buzzer_Fault_Run_Flag;//故障时蜂鸣器运行标志
	//xg-230814N-------
	uint8_t  errdistm;
	uint8_t  errcnt;   
	uint8_t  errnumb;
	uint8_t  errall[16];
	uint8_t  diserr;
	uint16_t outFan_end_Cnt;
	//-------xg-230814N
}Sys_Run_Struct;

extern Sys_Run_Struct Sys_Run;

typedef struct
{
	uint16_t Send_Data_Type;
  uint16_t Send_Data_Length;
	uint16_t Send_Data_Cnt;
	uint8_t  Send_Data[100];
	uint16_t Rev_Data_Length;
	uint8_t  Rev_Data_Cnt;
	uint16_t Rev_Data_Start;
	uint16_t Rev_Data_Done;
  uint8_t  Rev_Data[100];
  uint8_t  RS485_OK;
	uint16_t RS485_Error;
}Sys_Uart_Struct;

extern Sys_Uart_Struct Uart1_Val;

typedef struct
{
	uint16_t Grade_Level;//菜单等级
	uint16_t Grade_Monitor_Level;//监控菜单等级
	uint16_t Menu_GroupF_Level;//F菜单组等级
	uint16_t Menu_GroupC_Level;//C菜单组等级
	uint16_t Menu_GroupL_Level;//L菜单组等级
	uint16_t Menu_Para_Level;//参数菜单等级	
}Menu_Struct;

extern Menu_Struct Menu_Val;

enum Run_Frq_enum
{
	 Run_Frq_Non = 0,//运行频率0
   Compressor_Run_Frq_100,//满速
	 Compressor_Run_Frq_95,//95%满速
	 Compressor_Run_Frq_90,//90%满速
	 Compressor_Run_Frq_85,//85%满速
	 Compressor_Run_Frq_80,//80%满速
   Compressor_Run_Frq_Lower,//最低速
};

enum Grade_Level_enum
{
	 Grade_Level_Power_Up_Num = 0,//上电界面
   Grade_Monitor_Level_Num,//监控界面
	 Menu_GroupF_Level_Num,//F菜单组
	 Menu_GroupC_Level_Num,//C菜单组
	 Menu_GroupL_Level_Num,//L菜单组
	 Menu_ParaF_Level_Num,//F参数设置
   Menu_ParaC_Level_Num,//C参数设置
	 Menu_ParaL_Level_Num,//L参数设置
	 Menu_ParaF3_Level_Num,//快捷设置柜温
};

//设置菜单参数表
typedef struct
{
  int16_t  MenuF_Over_Udc;//直流母线过压值1
	int16_t  MenuF_Under_Udc;//直流母线欠压值2
	int16_t  MenuF_Board_Temp_Aim;//柜内温度目标值3
	int16_t  MenuF_Compressor_Run_Delay_Time;//压缩机启动延迟时间4
	int16_t  MenuF_Cold_Compressor_Speed;//制冷模式压缩机转速值5
	int16_t  MenuF_Saft_Compressor_Speed;//安全模式压缩机转速值6
	int16_t  MenuF_P_Compressor_Min_Speed;//P调节压缩机最低转速值7
	int16_t  MenuF_INV_Or_No;//变频模式开关8
	int16_t  MenuF_Open_Door_Time;//开门模式时间9
	int16_t  MenuF_Temp_Change_Delay_Time;//温区改变时间设置10
	int16_t  MenuF_yuL00;
	int16_t  MenuF_yuL01;
	int16_t  MenuF_yuL02;
	int16_t  MenuF_yuL03;
	
	int16_t  MenuF_yuL04;
	int16_t  MenuF_yuL05;
	int16_t  MenuF_yuL06;
	int16_t  MenuF_yuL07;
	
	int16_t  MenuF_yuL08;
	int16_t  MenuF_yuL09;
	int16_t  MenuF_yuL10;
	int16_t  MenuF_yuL11;
	
	int16_t  MenuF_yuL12;
	int16_t  MenuF_yuL13;
	int16_t  MenuF_yuL14;
 
	//int16_t  Reserve_Val[15];//保留参数
}MenuF_Struct;

union MenuF_Union
{
	int16_t      MenuF_Union_Val[FMenu_Max_Num];
  MenuF_Struct MenuF_Struct;
};

extern union MenuF_Union MenuF_Val;
//查询菜单参数表
typedef struct
{
  int16_t  MenuC_Udc;//直流母线电压1
	int16_t  MenuC_Compressor_Current;//压缩机电流2
	int16_t  MenuC_Compressor_Speed;//压缩机转速3
	int16_t  MenuC_Board_Temp;//柜内温度4
	int16_t  MenuC_Mos_Temp;//MOS温度5
	int16_t  MenuC_Error1;//故障信息1 6
	int16_t  MenuC_Error2;//故障信息2 7
	int16_t  MenuC_Warning;//警告信息8
	int16_t  MenuC_Defrost_Temp;//除霜温度信息9
	int16_t  MenuC_Set_Speed;//下发频率10
	int16_t  Reserve_Val[15];//保留参数
}MenuC_Struct;

union MenuC_Union
{
	int16_t      MenuC_Union_Val[CMenu_Max_Num*2];
  MenuC_Struct MenuC_Struct;
};
extern union MenuC_Union MenuC_Val;
//共振点设置菜单
typedef struct
{
  int16_t  JumpFrq1;//共振频率1
	int16_t  JumpFrq2;//共振频率2
	int16_t  JumpFrq3;//共振频率3
	int16_t  JumpFrq4;//共振频率4
	int16_t  JumpFrq5;//共振频率5
  int16_t  JumpFrq6;//共振频率6
	int16_t  JumpFrq7;//共振频率7
	int16_t  JumpFrq8;//共振频率8
	int16_t  JumpFrq9;//共振频率9
	int16_t  JumpFrq10;//共振频率10
	int16_t  Reserve_Val[15];//保留参数
}MenuL_Struct;

union MenuL_Union
{
	int16_t      MenuL_Union_Val[LMenu_Max_Num];
  MenuL_Struct MenuL_Struct;
};
extern union MenuL_Union MenuL_Val;

extern  const int16_t FUNCCODE_MenuF_Code[FMenu_Max_Num][4];
extern  const int16_t FUNCCODE_MenuC_Point_Code[CMenu_Max_Num];
extern  const int16_t FUNCCODE_MenuL_Code[LMenu_Max_Num][4];




void Sub_Dis_Num(int16_t Val,uint16_t Point);
uint16_t Get_Key(void);
void Sub_Menu(void);
void Sub_Scan_Led(void);
void Sub_Dis_Char(void);
int16_t Num_Abs(int16_t Val);
void Menu_Para_Init(void);
void Menu_Para_Save(void);
void Sub_Buzzer_Drv(void);
void Sub_LED_Lamp(void);
void Sub_Sys_Working(void);
void Delay_us(uint32_t Dat);
uint16_t Compressor_Run_Frq_Adjust(uint16_t Val);
void Sub_Uart_Init(void);
void Sub_Uart1_Comm(void);
void App_PortCfg(void);
void App_ClkDivInit(void);
void Sys_Val_Exchange(void);
uint16_t CrcValueByteCalc(const uint8_t *data, uint16_t length);
void RCC_Configuration(void);
void USART2_Configuration(void);
void USART2_Send_Data(uint32_t Len);
void IWDG_Init(u8 prer,u16 rlr);
#endif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值