#ifndef _user_H_ #define _user_H_ #define DF_SwTx 6 #define DF_SwRx 7 #define DF_RXTIME 11 #define DF_SwTxKGF1 8 #define DF_SwTxKGF2 10 #define DF_SwTxTemp 12 #define DF_SwRxPwm 8 #define dfCmd_01 UnInfCan_1.BitData.D21 //KGF1 #define dfCmd_02 UnInfCan_1.BitData.D22 //KGF2 #define dfCmd_03 UnInfCan_1.BitData.D23 //KGF3 #define dfCmd_04 UnInfCan_1.BitData.D24 //KGF4 #define dfCmd_05 UnInfCan_1.BitData.D25 //KGF5 #define dfCmd_06 UnInfCan_1.BitData.D26 //KGF6 #define dfCmd_07 UnInfCan_1.BitData.D27 //KGF7 #define dfCmd_08 UnInfCan_1.BitData.D28 //KGF8 #define dfCmd_09 UnInfCan_1.BitData.D29 //KGF9 #define dfCmd_10 UnInfCan_1.BitData.D30 //KGF10 #define dfCmd_11 UnInfCan_1.BitData.D31 //KGF11 #define dfCmd_12 UnInfCan_1.BitData.D32 //KGF12 #define dfCmd_13 UnInfCan_1.BitData.D33 //KGF13 #define dfCmd_14 UnInfCan_1.BitData.D34 //KGF14 #define dfCmd_15 UnInfCan_1.BitData.D35 //KGF15 #define dfCmd_16 UnInfCan_1.BitData.D36 //KGF16 #define dfOut_01 SwOut09 //KGF1 #define dfOut_02 SwOut10 //KGF2 #define dfOut_03 SwOut04 //KGF3 #define dfOut_04 SwOut03 //KGF4 #define dfOut_05 SwOut06 //KGF5 #define dfOut_06 SwOut05 //KGF6 #define dfOut_07 SwOut15 //KGF7 #define dfOut_08 SwOut16 //KGF8 #define dfOut_09 SwOut13 //KGF9 #define dfOut_10 SwOut14 //KGF10 #define dfOut_11 SwOut08 //KGF11 #define dfOut_12 SwOut07 //KGF12 #define dfOut_13 SwOut02 //KGF13 #define dfOut_14 SwOut01 //KGF14 #define dfOut_15 SwOut11 //KGF15 #define dfOut_16 SwOut12 //KGF16 #define dfPwmH 10 //PWM的高电平时间,10,10ms左右,具体需要测试20181227 #define WAKE_UP_PIN P1_5 //高压开关引脚 #define KGF_PIN P0_0 //唤醒引脚 #define CAN_PIN P1_6 //唤醒引脚 #define STOP_PIN P3_6 //急停开关引脚 #define ON 0 //按下 #define OFF 1 //松开 #define FAULT 0 #define NORMAL 1 #define HERTER_CMD(A) dfOut_05 = A;dfOut_06 = A;dfOut_07 = A;dfOut_08 = A #define PC_CMD(A) dfOut_09 = A;dfOut_10 = A // 状态定义(新增初始检测状态) typedef enum { STATE_INIT_CHECK, // 初始检测状态(判断是否<0°C) STATE_HEATING, // 加热状态 STATE_COOLING, // 停止加热状态 STATE_INIT_HEATING } SystemState; // 控制参数配置(符合网页1推荐参数设置) #define TEMP_HYSTERESIS 0.5f // 回差防止震荡[1,3](@ref) #define INIT_THRESHOLD 0.0f // 初始状态阈值 0 #define HEATING_STOP 10.0f // 停止加热温度 10 #define COOLING_RESTART 5.0f // 重启加热温度 5 // 定义电源状态枚举 typedef enum { POWER_STANDBY, POWER_WORKING, POWER_EMERGENCY, POWER_PRE_CHARGE, POWER_NEUTRAL, POWER_SLEEP } PowerState; // 输出到开关阀模块 typedef struct _StrInfCanKGFOutput { //----------主机发送命令字0x11000002 -------------------------------------------- unsigned int KGF01 : 1; // 通道1 unsigned int KGF02 : 1; // 通道2 unsigned int KGF03 : 1; // 通道3 unsigned int KGF04 : 1; // 通道4 unsigned int KGF05 : 1; // 通道5 unsigned int KGF06 : 1; // 通道6 unsigned int KGF07 : 1; // 通道7 unsigned int KGF08 : 1; // 通道8 unsigned int KGF09 : 1; // 通道9 unsigned int KGF10 : 1; // 通道10 unsigned int KGF11 : 1; // 通道11 unsigned int KGF12 : 1; // 通道12 unsigned int KGF13 : 1; // 通道13 unsigned int KGF14 : 1; // 通道14 unsigned int KGF15 : 1; // 通道15 unsigned int KGF16 : 1; // 通道16 unsigned int can_rx2 : 8; // 保留 unsigned int can_rx3 : 8; // 保留 unsigned int can_rx4 : 8; // 保留 unsigned int can_rx5 : 8; // 保留 unsigned int can_period_h : 8; // 发送周期高位 unsigned int can_period_l : 8; // 发送周期低位 //----------发送0x11000003 --------------------------------------------------- unsigned int pwm_01 : 4; // PWM通道1 unsigned int pwm_02 : 4; // PWM通道2 unsigned int pwm_03 : 4; // PWM通道3 unsigned int pwm_04 : 4; // PWM通道4 unsigned int pwm_05 : 4; // PWM通道5 unsigned int pwm_06 : 4; // PWM通道6 unsigned int pwm_07 : 4; // PWM通道7 unsigned int pwm_08 : 4; // PWM通道8 unsigned int pwm_09 : 4; // PWM通道9 unsigned int pwm_10 : 4; // PWM通道10 unsigned int pwm_11 : 4; // PWM通道11 unsigned int pwm_12 : 4; // PWM通道12 unsigned int pwm_13 : 4; // PWM通道13 unsigned int pwm_14 : 4; // PWM通道14 unsigned int pwm_15 : 4; // PWM通道15 unsigned int pwm_16 : 4; // PWM通道16 } StrInfCanKGFOutput; typedef union _UnInfCanKGFOutput { StrInfCanKGFOutput bit_data; // 使用定义的结构体变量名 ubyte arr[sizeof(StrInfCanKGFOutput)]; // 通过结构体类型确定大小 } UnInfCanKGFOutput; //---外部要使用变量声明--------------------------------------------------------------------- extern UnSwOut UnSwOut_1; extern UnInfCan UnInfCan_1; extern uword CntCan_1; extern bit FlgCan_1; extern ubyte RestartDataFlg1; extern ubyte RestartDataFlg2; extern uword RestartDataKGF; extern UnInfCanKGFOutput un_inf_can_kgf_output1;//kgf输出 void CanRXTX(void); void SwSample(void); void LedDr(void); void RTCProcess(void); void CanErrorProcess(void); void CanTransmit(void); void canSendTo(ubyte index, ubyte *buff); #endif