Commit 7f33125a authored by 赵康弘's avatar 赵康弘

feat: 上位机CAN控制接入

parent 86964289
......@@ -238,6 +238,16 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
(( void * )0),
(( void * )0),
},
{
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
{0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u, 0x00u},
5000ul,
0x18000000ul,
(( void * )0),
(( void * )0),
(( void * )0),
},
};
uint8_t Get_ID_18FF30E1_Sig_ECAS_Decrease(void)
......@@ -737,6 +747,19 @@ uint8_t Get_ID_18FFA017_Sig_Instrument_Igon_Wake_Up_Power(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,ID_ID0x18FFA017_Msg_Count, 0u) >> 4u) & 0x03u));
}
uint8_t Get_ID_18000000_Sig_PC_Control_U16_Power(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,ID_ID0x18000000_Msg_Count, 0u) >> 0u) & 0x01u));
}
uint8_t Get_ID_18000000_Sig_PC_Control_U48_Power(void)
{
return (((uint8_t)((uint8_t)CAN_MSG_Read(CAN_CH0,ID_ID0x18000000_Msg_Count, 0u) >> 1u) & 0x01u));
}
uint8_t Get_ID_18000000_Sig_PC_Control_U48_CurrentControlSet(void)
{
return (((uint16_t)((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,ID_ID0x18000000_Msg_Count, 2u) >> 0u) & 0xFFu) << 8u) + \
((uint16_t)((uint16_t)CAN_MSG_Read(CAN_CH0,ID_ID0x18000000_Msg_Count, 1u) >> 0u) & 0xFFu));
}
uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
{
......@@ -809,6 +832,9 @@ uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
case ID_ID0x18FFA017_Msg:
u8Result = ID_ID0x18FFA017_Msg_Count;
break;
case ID_ID0x18000000_Msg:
u8Result = ID_ID0x18000000_Msg_Count;
break;
default :
u8Result = CAN_CH0_ID_TOTAL_MAX;
break;
......
......@@ -32,6 +32,7 @@ typedef enum
ID_ID0x18FE17EF_Msg_Count,
ID_ID0x18FEF117_Msg_Count,
ID_ID0x18FFA017_Msg_Count,
ID_ID0x18000000_Msg_Count,
CAN_CH0_ID_TOTAL_MAX,
} CAN_MSG_ID_t;
......@@ -72,6 +73,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL]
#define ID_ID0x18FE17EF_Msg 0x98FE17EFu
#define ID_ID0x18FEF117_Msg 0x98FEF117u
#define ID_ID0x18FFA017_Msg 0x98FFA017u
#define ID_ID0x18000000_Msg 0x98000000u
extern uint8_t Get_ID_18FF30E1_Sig_ECAS_Decrease(void);
extern uint8_t Get_ID_18FE4F0B_Sig_VDC_Brake_Light_quest(void);
......@@ -172,6 +174,9 @@ extern uint8_t Get_ID_18FFA017_Sig_Charging_Door_Open(void);
extern uint8_t Get_ID_18FFA017_Sig_Danger_Lights(void);
extern uint8_t Get_ID_18FFA017_Sig_Hand_Brake(void);
extern uint8_t Get_ID_18FFA017_Sig_Instrument_Igon_Wake_Up_Power(void);
extern uint8_t Get_ID_18000000_Sig_PC_Control_U16_Power(void);
extern uint8_t Get_ID_18000000_Sig_PC_Control_U48_Power(void);
extern uint8_t Get_ID_18000000_Sig_PC_Control_U48_CurrentControlSet(void);
extern uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
......
......@@ -3,15 +3,15 @@
#include "MC33984EHFK.h"
#include "SGM4591Q.h"
#include "Dio.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"
/*此文件用于上位机控制U16和U48*/
uint8_t state_23 = 1;
/*U16*/
void PC_Control_U16(void)
{
uint8_t state_23 = 1;
/*U16*/
void PC_Control_U16(void)
{
uint8_t state_24 = 1;
state_23 = Get_ID_18000000_Sig_PC_Control_U16_Power();
/*DIA_EN 引脚置为高电平*/
SGM4591Q_Chip3_2_Segment1.BIT.PIN_3 = 1;
SGM4591Q_Global_Control(SGM4591Q_Chip3_2, SGM4591Q_Segment1);
......@@ -48,19 +48,19 @@
uint8_t state_U48_1 = 1;
void PC_Control_U48(void)
{
state_U48_1 = Get_ID_18000000_Sig_PC_Control_U48_Power();
/*20A_OUT2*/
if (state_U48_1 == 1)
{
Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_HIGH);
state_U48_1 = 2;
}
else if (state_U48_1 == 0)
{
Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_LOW);
state_U48_1 = 2;
}
else
{
;
}
Get_ID_18000000_Sig_PC_Control_U48_CurrentControlSet();
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment