167 lines
6.9 KiB
C
167 lines
6.9 KiB
C
#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 |