#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_SwRxKGF2 13 #define DF_SwZFKGF1 14 #define MAX_TIME 43200 //最大分钟,也就是30天整 #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 BATTERY_PIN P0_0 //电池控制脚 #define ON 0 //按下 #define OFF 1 //松开 #define FAULT 0 #define NORMAL 1 // 定义电源状态枚举 typedef enum { POWER_STANDBY, POWER_WORKING, POWER_EMERGENCY, POWER_PRE_CHARGE, 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; // VCU -> 采集模块 开关阀命令 0x15000004 typedef struct _StrSampleKgfCommand { //-----KGF01 目标位图 byte0..1----------------------------------------- unsigned int KGF01_CH01_Reserve : 1; // bit0 通道1 unsigned int KGF01_CH02_Reserve : 1; // bit1 通道2 unsigned int KGF01_CH03_Reserve : 1; // bit2 通道3 unsigned int KGF01_PrechargeRelay : 1; // bit3 通道4 预充继电器 unsigned int KGF01_CH05_Reserve : 1; // bit4 通道5 unsigned int KGF01_CH06_Reserve : 1; // bit5 通道6 unsigned int KGF01_HighVoltageRelayA : 1; // bit6 通道7 高压继电器A unsigned int KGF01_HighVoltageRelayB : 1; // bit7 通道8 高压继电器B unsigned int KGF01_CH09_Reserve : 1; // bit8 通道9 unsigned int KGF01_CH10_Reserve : 1; // bit9 通道10 unsigned int KGF01_LowVoltageRelayA : 1; // bit10 通道11 低压继电器A unsigned int KGF01_LowVoltageRelayB : 1; // bit11 通道12 低压继电器B unsigned int KGF01_LowVoltageCharge : 1; // bit12 通道13 低压充电 unsigned int KGF01_CH14_Reserve : 1; // bit13 通道14 unsigned int KGF01_CH15_Reserve : 1; // bit14 通道15 unsigned int KGF01_CH16_Reserve : 1; // bit15 通道16 //-----KGF02 目标位图 byte2..3----------------------------------------- unsigned int KGF02_ComputerPowerA : 1; // bit16 通道1 计算机电源A unsigned int KGF02_ComputerPowerB : 1; // bit17 通道2 计算机电源B unsigned int KGF02_RemotePower : 1; // bit18 通道3 遥控器电源 unsigned int KGF02_VcuE3Power : 1; // bit19 通道4 VCU(E3)电源 unsigned int KGF02_NetworkSwitchPowerA : 1; // bit20 通道5 交换机电源A unsigned int KGF02_NetworkSwitchPowerB : 1; // bit21 通道6 交换机电源B unsigned int KGF02_LeftHeadlightA : 1; // bit22 通道7 左前灯A unsigned int KGF02_LeftHeadlightB : 1; // bit23 通道8 左前灯B unsigned int KGF02_RightHeadlightA : 1; // bit24 通道9 右前灯A unsigned int KGF02_RightHeadlightB : 1; // bit25 通道10 右前灯B unsigned int KGF02_LeftTaillightA : 1; // bit26 通道11 左后灯A unsigned int KGF02_LeftTaillightB : 1; // bit27 通道12 左后灯B unsigned int KGF02_RightTaillightA : 1; // bit28 通道13 右后灯A unsigned int KGF02_RightTaillightB : 1; // bit29 通道14 右后灯B unsigned int KGF02_ComputerPowerC : 1; // bit30 通道15 计算机电源C unsigned int KGF02_ComputerPowerD : 1; // bit31 通道16 计算机电源D //-----保留 byte4..7-------------------------------------------------- ulong Reserve ; // bit32..63 } StrSampleKgfCommand; typedef union _UnSampleKgfCommand { StrSampleKgfCommand bit_data; // 使用定义的结构体变量名 ubyte arr[sizeof(StrSampleKgfCommand)]; // 通过结构体类型确定大小 } UnSampleKgfCommand; //---外部要使用变量声明--------------------------------------------------------------------- extern UnSwOut UnSwOut_1; extern UnInfCan UnInfCan_1; extern uword CntCan_1; extern bit FlgCan_1; extern ubyte can_error_cnt; extern ubyte can_error_flg; extern UnInfCanKGFOutput un_inf_can_kgf_output1;//kgf输出 extern UnInfCanKGFOutput un_inf_can_kgf_output2;//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