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] = ...@@ -238,6 +238,16 @@ const st_CANMsgAttribute CAN_CH0_CAN_MSG_CONST_ARRAY[CAN_CH0_ID_TOTAL_MAX] =
(( void * )0), (( void * )0),
(( 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) 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) ...@@ -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)); 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) uint8_t Co_Can_ConvertSubID_CAN_CH0(uint32_t MsgID)
{ {
...@@ -809,6 +832,9 @@ 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: case ID_ID0x18FFA017_Msg:
u8Result = ID_ID0x18FFA017_Msg_Count; u8Result = ID_ID0x18FFA017_Msg_Count;
break; break;
case ID_ID0x18000000_Msg:
u8Result = ID_ID0x18000000_Msg_Count;
break;
default : default :
u8Result = CAN_CH0_ID_TOTAL_MAX; u8Result = CAN_CH0_ID_TOTAL_MAX;
break; break;
......
...@@ -32,6 +32,7 @@ typedef enum ...@@ -32,6 +32,7 @@ typedef enum
ID_ID0x18FE17EF_Msg_Count, ID_ID0x18FE17EF_Msg_Count,
ID_ID0x18FEF117_Msg_Count, ID_ID0x18FEF117_Msg_Count,
ID_ID0x18FFA017_Msg_Count, ID_ID0x18FFA017_Msg_Count,
ID_ID0x18000000_Msg_Count,
CAN_CH0_ID_TOTAL_MAX, CAN_CH0_ID_TOTAL_MAX,
} CAN_MSG_ID_t; } CAN_MSG_ID_t;
...@@ -72,6 +73,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL] ...@@ -72,6 +73,7 @@ extern const st_CAN_SendAttribute CAN_CH0_CANSendAttr[CAN_CH0_ID_SEND_TOTAL]
#define ID_ID0x18FE17EF_Msg 0x98FE17EFu #define ID_ID0x18FE17EF_Msg 0x98FE17EFu
#define ID_ID0x18FEF117_Msg 0x98FEF117u #define ID_ID0x18FEF117_Msg 0x98FEF117u
#define ID_ID0x18FFA017_Msg 0x98FFA017u #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_18FF30E1_Sig_ECAS_Decrease(void);
extern uint8_t Get_ID_18FE4F0B_Sig_VDC_Brake_Light_quest(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); ...@@ -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_Danger_Lights(void);
extern uint8_t Get_ID_18FFA017_Sig_Hand_Brake(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_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_CAN_CH0(uint32_t MsgID);
extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID); extern uint8_t Co_Can_ConvertSubID(uint32_t MsgID);
......
...@@ -3,15 +3,15 @@ ...@@ -3,15 +3,15 @@
#include "MC33984EHFK.h" #include "MC33984EHFK.h"
#include "SGM4591Q.h" #include "SGM4591Q.h"
#include "Dio.h" #include "Dio.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"
/*此文件用于上位机控制U16和U48*/ /*此文件用于上位机控制U16和U48*/
uint8_t state_23 = 1;
uint8_t state_23 = 1; /*U16*/
/*U16*/ void PC_Control_U16(void)
void PC_Control_U16(void) {
{
uint8_t state_24 = 1; uint8_t state_24 = 1;
state_23 = Get_ID_18000000_Sig_PC_Control_U16_Power();
/*DIA_EN 引脚置为高电平*/ /*DIA_EN 引脚置为高电平*/
SGM4591Q_Chip3_2_Segment1.BIT.PIN_3 = 1; SGM4591Q_Chip3_2_Segment1.BIT.PIN_3 = 1;
SGM4591Q_Global_Control(SGM4591Q_Chip3_2, SGM4591Q_Segment1); SGM4591Q_Global_Control(SGM4591Q_Chip3_2, SGM4591Q_Segment1);
...@@ -48,19 +48,19 @@ ...@@ -48,19 +48,19 @@
uint8_t state_U48_1 = 1; uint8_t state_U48_1 = 1;
void PC_Control_U48(void) void PC_Control_U48(void)
{ {
state_U48_1 = Get_ID_18000000_Sig_PC_Control_U48_Power();
/*20A_OUT2*/ /*20A_OUT2*/
if (state_U48_1 == 1) if (state_U48_1 == 1)
{ {
Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_HIGH); Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_HIGH);
state_U48_1 = 2;
} }
else if (state_U48_1 == 0) else if (state_U48_1 == 0)
{ {
Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_LOW); Dio_WriteChannel(DioConf_DioChannel_P20_09, STD_LOW);
state_U48_1 = 2;
} }
else 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