Commit 0e4e8eb5 authored by 时昊's avatar 时昊

feat:增加can功能,外发,接收,初始化

parent 0fb7e3f4
// #include "Can_User.h" #include "Can_User.h"
// #include <string.h> #include <string.h>
// #include "can.h" #include "can.h"
// #include "RTE.h" #include "RTE.h"
// #include "CAN_CH0_CAN_Communication_Matrix.h" #include "CAN_CH0_CAN_Communication_Matrix.h"
// __align(4) __align(4)
// uint32_t pRXBuff[CAN_RX_MSG_Block * CAN_CH0_ID_TOTAL_MAX]; uint32_t pRXBuff[CAN_RX_MSG_Block * CAN_CH0_ID_TOTAL_MAX];
// uint32_t pTXBuff[CAN_TX_MSG_Block * CAN_CH0_ID_SEND_TOTAL]; uint32_t pTXBuff[CAN_TX_MSG_Block * CAN_CH0_ID_SEND_TOTAL];
// static RSCAN0BusoffMonitorStruct RSCAN0Busoff; static RSCAN0BusoffMonitorStruct RSCAN0Busoff;
// void Can_Init(void) void Can_Init(void)
// { {
// can_config_st_t Can_Config; can_config_st_t Can_Config;
// Can_Config.ch = CAN_CH_0; Can_Config.ch = CAN_CH_0;
// Can_Config.freq = CAN_500Kbps; Can_Config.freq = CAN_500Kbps;
// Can_Config.MASK[0] = 0x001fffffU; Can_Config.MASK[0] = 0x001fffffU;
// Can_Config.MASK[1] = 0x000fffffU; Can_Config.MASK[1] = 0x000fffffU;
// Can_Config.MASK[2] = 0x1fffffffU; Can_Config.MASK[2] = 0x1fffffffU;
// Can_Config.MASK[3] = 0x1fffffffU; Can_Config.MASK[3] = 0x1fffffffU;
// Can_Config.rx_callback = Can_Rx_Cak; Can_Config.rx_callback = Can_Rx_Cak;
// COM_CAN_Init(); COM_CAN_Init();
// rte_can_init(&Can_Config); rte_can_init(&Can_Config);
// Can_Tx_Apply_Buff(); Can_Tx_Apply_Buff();
// Can_RX_Apply_Buff(); Can_RX_Apply_Buff();
// RTE_GPIO_Set_Level(RTE_GPIO_PORT05_PIN02,RTE_GPIO_LEVEL_LOW); RTE_GPIO_Set_Level(RTE_GPIO_PORT05_PIN02,RTE_GPIO_LEVEL_LOW);
// } }
// /** /**
// * @brief 用于申请RXBUFF CAN0MSG00~CAN0MSG07 * @brief 用于申请RXBUFF CAN0MSG00~CAN0MSG07
// * *
// */ */
// void Can_RX_Apply_Buff(void) void Can_RX_Apply_Buff(void)
// { {
// CAN_RecvMsg.Id = 0x101; CAN_RecvMsg.Id = 0x101;
// CAN_RecvMsg.IDE = CAN_Id_Standard; CAN_RecvMsg.IDE = CAN_Id_Standard;
// CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask; CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// CAN_RecvMsg.RTR = CAN_RTR_Data; CAN_RecvMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = ENABLE; CAN_RecvMsg.Interrupt = ENABLE;
// CAN_MessageCache_DeInit(CAN0MSG01); CAN_MessageCache_DeInit(CAN0MSG01);
// CAN_MessageCache_Init(CAN0MSG01, &CAN_RecvMsg); CAN_MessageCache_Init(CAN0MSG01, &CAN_RecvMsg);
// CAN_MessageCache_OverWriteConfig(CAN0MSG01, ENABLE); CAN_MessageCache_OverWriteConfig(CAN0MSG01, ENABLE);
// // CAN_RecvMsg.Id = DIAG_ID_Rx_PHY; // CAN_RecvMsg.Id = DIAG_ID_Rx_PHY;
// // CAN_RecvMsg.IDE = CAN_Id_Standard; // CAN_RecvMsg.IDE = CAN_Id_Standard;
// // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask; // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// // CAN_RecvMsg.RTR = CAN_RTR_Data; // CAN_RecvMsg.RTR = CAN_RTR_Data;
// // CAN_RecvMsg.Interrupt = ENABLE; // CAN_RecvMsg.Interrupt = ENABLE;
// // CAN_MessageCache_DeInit(CAN0MSG03); // CAN_MessageCache_DeInit(CAN0MSG03);
// // CAN_MessageCache_Init(CAN0MSG03, &CAN_RecvMsg); // CAN_MessageCache_Init(CAN0MSG03, &CAN_RecvMsg);
// // CAN_MessageCache_OverWriteConfig(CAN0MSG03, ENABLE); // CAN_MessageCache_OverWriteConfig(CAN0MSG03, ENABLE);
// // CAN_RecvMsg.Id = DIAG_ID_Rx_FUN; // CAN_RecvMsg.Id = DIAG_ID_Rx_FUN;
// // CAN_RecvMsg.IDE = CAN_Id_Standard; // CAN_RecvMsg.IDE = CAN_Id_Standard;
// // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask; // CAN_RecvMsg.CacheType = CAN_CacheType_Rx_NoMask;
// // CAN_RecvMsg.RTR = CAN_RTR_Data; // CAN_RecvMsg.RTR = CAN_RTR_Data;
// // CAN_RecvMsg.Interrupt = ENABLE; // CAN_RecvMsg.Interrupt = ENABLE;
// // CAN_MessageCache_DeInit(CAN0MSG04); // CAN_MessageCache_DeInit(CAN0MSG04);
// // CAN_MessageCache_Init(CAN0MSG04, &CAN_RecvMsg); // CAN_MessageCache_Init(CAN0MSG04, &CAN_RecvMsg);
// // CAN_MessageCache_OverWriteConfig(CAN0MSG04, ENABLE); // CAN_MessageCache_OverWriteConfig(CAN0MSG04, ENABLE);
// } }
// /** /**
// * @brief 用于申请TXBUFF * @brief 用于申请TXBUFF
// * *
// */ */
// void Can_Tx_Apply_Buff(void) void Can_Tx_Apply_Buff(void)
// { {
// CanTxRxMsg CAN_SendMsg; CanTxRxMsg CAN_SendMsg;
// CanTxRxMsg CAN_SendMsg_Diag_Tx; CanTxRxMsg CAN_SendMsg_Diag_Tx;
// CAN_SendMsg.Id = 0x500; CAN_SendMsg.Id = 0x500;
// CAN_SendMsg.IDE = CAN_Id_Standard; CAN_SendMsg.IDE = CAN_Id_Standard;
// CAN_SendMsg.CacheType = CAN_CacheType_Tx; CAN_SendMsg.CacheType = CAN_CacheType_Tx;
// CAN_SendMsg.RTR = CAN_RTR_Data; CAN_SendMsg.RTR = CAN_RTR_Data;
// CAN_RecvMsg.Interrupt = DISABLE; CAN_RecvMsg.Interrupt = DISABLE;
// CAN_SendMsg.DLC = 8; CAN_SendMsg.DLC = 8;
// for (uint8_t i = 0; i < CAN_SendMsg.DLC; i++) for (uint8_t i = 0; i < CAN_SendMsg.DLC; i++)
// { {
// CAN_SendMsg.Data[i] = 0; CAN_SendMsg.Data[i] = 0;
// } }
// CAN_MessageCache_DeInit(CAN0MSG08); CAN_MessageCache_DeInit(CAN0MSG08);
// CAN_MessageCache_Init(CAN0MSG08, &CAN_SendMsg); CAN_MessageCache_Init(CAN0MSG08, &CAN_SendMsg);
// // CAN_SendMsg_Diag_Tx.Id = DIAG_ID_Tx; // CAN_SendMsg_Diag_Tx.Id = DIAG_ID_Tx;
// // CAN_SendMsg_Diag_Tx.IDE = CAN_Id_Standard; // CAN_SendMsg_Diag_Tx.IDE = CAN_Id_Standard;
// // CAN_SendMsg_Diag_Tx.CacheType = CAN_CacheType_Tx; // CAN_SendMsg_Diag_Tx.CacheType = CAN_CacheType_Tx;
// // CAN_SendMsg_Diag_Tx.RTR = CAN_RTR_Data; // CAN_SendMsg_Diag_Tx.RTR = CAN_RTR_Data;
// // CAN_SendMsg_Diag_Tx.Interrupt = DISABLE; // CAN_SendMsg_Diag_Tx.Interrupt = DISABLE;
// // CAN_SendMsg_Diag_Tx.DLC = 8; // CAN_SendMsg_Diag_Tx.DLC = 8;
// // for (uint8_t i = 0; i < CAN_SendMsg_Diag_Tx.DLC; i++) // for (uint8_t i = 0; i < CAN_SendMsg_Diag_Tx.DLC; i++)
// // { // {
// // CAN_SendMsg_Diag_Tx.Data[i] = 0; // CAN_SendMsg_Diag_Tx.Data[i] = 0;
// // } // }
// // CAN_MessageCache_DeInit(CAN0MSG09); // CAN_MessageCache_DeInit(CAN0MSG09);
// // CAN_MessageCache_Init(CAN0MSG09, &CAN_SendMsg_Diag_Tx); // CAN_MessageCache_Init(CAN0MSG09, &CAN_SendMsg_Diag_Tx);
// } }
// /** /**
// * @brief 用于接收回调函数 * @brief 用于接收回调函数
// * @code * @code
// */ */
// void Can_Rx_Cak(CanTxRxMsg *Msg) void Can_Rx_Cak(CanTxRxMsg *Msg)
// { {
// Co_Can_Buff_Set(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(Msg->Id), Msg->DLC, Msg->Data); Co_Can_Buff_Set(&CAN_CH0_CanMsgOp, Co_Can_ConvertSubID_CAN_CH0(Msg->Id), Msg->DLC, Msg->Data);
// if ((Msg->Id == DIAG_ID_Rx_FUN) || (Msg->Id == DIAG_ID_Rx_PHY)) // if ((Msg->Id == DIAG_ID_Rx_FUN) || (Msg->Id == DIAG_ID_Rx_PHY))
// { // {
// DoCAN_L_Data_Indication(Msg->Id, Msg->DLC, Msg->Data); // DoCAN_L_Data_Indication(Msg->Id, Msg->DLC, Msg->Data);
// } // }
// } }
// /** /**
// * @brief CAN库初始化TX/RX * @brief CAN库初始化TX/RX
// * *
// */ */
// void COM_CAN_Init(void) void COM_CAN_Init(void)
// { {
// memset(pRXBuff, 0, sizeof(pRXBuff)); memset(pRXBuff, 0, sizeof(pRXBuff));
// CAN_CH0_CanMsgOp.CAN_MSG_Analysis = (st_CANMsgStruct *)pRXBuff; CAN_CH0_CanMsgOp.CAN_MSG_Analysis = (st_CANMsgStruct *)pRXBuff;
// CAN_CH0_CanMsgOp.pAttrubute = CAN_CH0_CAN_MSG_CONST_ARRAY; CAN_CH0_CanMsgOp.pAttrubute = CAN_CH0_CAN_MSG_CONST_ARRAY;
// CAN_CH0_CanMsgOp.Total_Msg = CAN_CH0_ID_TOTAL_MAX; CAN_CH0_CanMsgOp.Total_Msg = CAN_CH0_ID_TOTAL_MAX;
// CAN_CH0_CanMsgOp.u8CAN_RX_ENABLE = CAN_N_RX_Enable; CAN_CH0_CanMsgOp.u8CAN_RX_ENABLE = CAN_N_RX_Enable;
// Can_RX_BuffInit(&CAN_CH0_CanMsgOp, CAN_CH0_CAN_MSG_CONST_ARRAY, CAN_CH0_ID_TOTAL_MAX); Can_RX_BuffInit(&CAN_CH0_CanMsgOp, CAN_CH0_CAN_MSG_CONST_ARRAY, CAN_CH0_ID_TOTAL_MAX);
// CAN_RX_SetEnable(&CAN_CH0_CanMsgOp, CAN_N_RX_Enable); CAN_RX_SetEnable(&CAN_CH0_CanMsgOp, CAN_N_RX_Enable);
// memset(pTXBuff, 0, sizeof(pTXBuff)); memset(pTXBuff, 0, sizeof(pTXBuff));
// CAN_CH0_CanMsgTxOp.CanMsg = (st_CAN_SendOperation *)pTXBuff; CAN_CH0_CanMsgTxOp.CanMsg = (st_CAN_SendOperation *)pTXBuff;
// Can_TX_BuffInit(&CAN_CH0_CanMsgTxOp, CAN_CH0_CANSendAttr, CAN_CH0_ID_SEND_TOTAL, COM_APP_Process); Can_TX_BuffInit(&CAN_CH0_CanMsgTxOp, CAN_CH0_CANSendAttr, CAN_CH0_ID_SEND_TOTAL, COM_APP_Process);
// CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable); CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
// } }
// /** /**
// * @brief Buff恢复函数 * @brief Buff恢复函数
// * @param deltaTime 调用时间 单位ms 10MS调用 * @param deltaTime 调用时间 单位ms 10MS调用
// */ */
// void Can_BusOff_Recover(uint8_t deltaTime) void Can_BusOff_Recover(uint8_t deltaTime)
// { {
// if (get_can_busoff(CAN_CH_0) == 2) if (get_can_busoff(CAN_CH_0) == 2)
// { {
// if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE) if (RSCAN0Busoff.Status == RSCAN0_BUS_STABLE)
// { {
// RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1; RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV1;
// } }
// if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV1) if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV1)
// { {
// RSCAN0Busoff.Timer++; RSCAN0Busoff.Timer++;
// if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV1_RECOVERY_TIME / deltaTime) if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV1_RECOVERY_TIME / deltaTime)
// { {
// RSCAN0Busoff.Timer = 0U; RSCAN0Busoff.Timer = 0U;
// RSCAN0Busoff.Cnt++; RSCAN0Busoff.Cnt++;
// if (RSCAN0Busoff.Cnt >= 10U) if (RSCAN0Busoff.Cnt >= 10U)
// { {
// RSCAN0Busoff.Cnt = 0U; RSCAN0Busoff.Cnt = 0U;
// RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV2; RSCAN0Busoff.Status = RSCAN0_BUS_OFF_LV2;
// } }
// reset_busoff(CAN_CH_0); reset_busoff(CAN_CH_0);
// } }
// } }
// else if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV2) else if (RSCAN0Busoff.Status == RSCAN0_BUS_OFF_LV2)
// { {
// RSCAN0Busoff.Timer++; RSCAN0Busoff.Timer++;
// if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV2_RECOVERY_TIME / deltaTime) if (RSCAN0Busoff.Timer >= RSCAN0_BUS_OFF_LV2_RECOVERY_TIME / deltaTime)
// { {
// RSCAN0Busoff.Timer = 0U; RSCAN0Busoff.Timer = 0U;
// reset_busoff(CAN_CH_0); reset_busoff(CAN_CH_0);
// } }
// } }
// else else
// { {
// } }
// } }
// else /* 总线正常,没有Bus-off发生*/ else /* 总线正常,没有Bus-off发生*/
// { {
// } }
// } }
// /** /**
// * @brief 获取busoff状态 * @brief 获取busoff状态
// * @return 0 没有busoff * @return 0 没有busoff
// * 1 错误的操作 * 1 错误的操作
// * 2 busoff * 2 busoff
// */ */
// uint8_t Get_Busoff_Status(void) uint8_t Get_Busoff_Status(void)
// { {
// return get_can_busoff(CAN_CH_0); return get_can_busoff(CAN_CH_0);
// } }
// uint8_t COM_APP_Process(st_CAN_Msg *Msg) uint8_t COM_APP_Process(st_CAN_Msg *Msg)
// { {
// Can_Write((st_CAN_Msg *)Msg); Can_Write((st_CAN_Msg *)Msg);
// return 0; return 0;
// } }
// void Can_Write(st_CAN_Msg *Msg) void Can_Write(st_CAN_Msg *Msg)
// { {
// uint32_t i = 0; uint32_t i = 0;
// CanTxRxMsg CAN_SendMsg; CanTxRxMsg CAN_SendMsg;
// CAN_SendMsg.Id = Msg->MsgID; /* ID */ CAN_SendMsg.Id = Msg->MsgID; /* ID */
// CAN_SendMsg.DLC = Msg->MsgDLC; /* Len */ CAN_SendMsg.DLC = Msg->MsgDLC; /* Len */
// CAN_SendMsg.RTR = Msg->MsgRTR; /* Default 0 */ CAN_SendMsg.RTR = Msg->MsgRTR; /* Default 0 */
// CAN_SendMsg.IDE = CAN_Id_Standard; /* Stand 0 Ext 1 */ CAN_SendMsg.IDE = CAN_Id_Standard; /* Stand 0 Ext 1 */
// CAN_SendMsg.CacheType = CAN_CacheType_Tx; CAN_SendMsg.CacheType = CAN_CacheType_Tx;
// for (i = 0; i < CAN_SendMsg.DLC; i++) /* 获取数据 */ for (i = 0; i < CAN_SendMsg.DLC; i++) /* 获取数据 */
// { {
// CAN_SendMsg.Data[i] = Msg->Msg[i]; CAN_SendMsg.Data[i] = Msg->Msg[i];
// } }
// switch (CAN_SendMsg.Id) switch (CAN_SendMsg.Id)
// { {
// case 0x500: case 0x500:
// CAN_Transmit(CAN0MSG08, &CAN_SendMsg); CAN_Transmit(CAN0MSG08, &CAN_SendMsg);
// break; break;
// default: default:
// break; break;
// } }
// } }
// #ifndef _CAN_USER_H_ #ifndef _CAN_USER_H_
// #define _CAN_USER_H_ #define _CAN_USER_H_
// #include "RTE.h" #include "RTE.h"
// #include "Components.h" #include "Components.h"
// /****************************************************************************** /******************************************************************************
// Bus-off Bus-off
// ******************************************************************************/ ******************************************************************************/
// #define RSCAN0_BUS_STABLE 0x00U #define RSCAN0_BUS_STABLE 0x00U
// #define RSCAN0_BUS_OFF_LV1 0x01U #define RSCAN0_BUS_OFF_LV1 0x01U
// #define RSCAN0_BUS_OFF_LV2 0x02U #define RSCAN0_BUS_OFF_LV2 0x02U
// #define RSCAN00_BUS_LIMP 0x03U #define RSCAN00_BUS_LIMP 0x03U
// /****************************************************************************** /******************************************************************************
// Bus-off Bus-off
// ******************************************************************************/ ******************************************************************************/
// #define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U #define RSCAN0_BUS_OFF_LV1_RECOVERY_TIME 90U
// #define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U #define RSCAN0_BUS_OFF_LV2_RECOVERY_TIME 1000U
// typedef struct typedef struct
// { {
// uint8_t Status; uint8_t Status;
// uint8_t Timer; uint8_t Timer;
// uint8_t Cnt; uint8_t Cnt;
// uint8_t ReportDTCCnt; uint8_t ReportDTCCnt;
// } RSCAN0BusoffMonitorStruct; } RSCAN0BusoffMonitorStruct;
// extern void Can_Tx_Apply_Buff(void); extern void Can_Tx_Apply_Buff(void);
// extern void Can_RX_Apply_Buff(void); extern void Can_RX_Apply_Buff(void);
// extern void Can_BusOff_Recover(uint8_t deltaTime); extern void Can_BusOff_Recover(uint8_t deltaTime);
// extern void COM_CAN_Init(void); extern void COM_CAN_Init(void);
// extern void Can_Init(void); extern void Can_Init(void);
// extern void Can_Rx_Cak(CanTxRxMsg *Msg); extern void Can_Rx_Cak(CanTxRxMsg *Msg);
// extern void Busoff(void); extern void Busoff(void);
// extern uint8_t COM_APP_Process(st_CAN_Msg *Msg); extern uint8_t COM_APP_Process(st_CAN_Msg *Msg);
// extern void Can_Write(st_CAN_Msg *Msg); extern void Can_Write(st_CAN_Msg *Msg);
// #endif #endif
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
uint32_t PowerIgnOnTimeLine; uint32_t PowerIgnOnTimeLine;
uint32_t PowerIgnOffTimeLine; uint32_t PowerIgnOffTimeLine;
static uint32_t PowerSocTimeLine; static uint32_t PowerSocTimeLine;
......
...@@ -28,5 +28,7 @@ ...@@ -28,5 +28,7 @@
#include "Data_VSpeed.h" #include "Data_VSpeed.h"
#include "BackLight.h" #include "BackLight.h"
#include "RTC\RTE_RTC.h" #include "RTC\RTE_RTC.h"
#include "CAN_Signal\CAN_Lib.h"
#include "CAN_CH0_CAN_Communication_Matrix.h"
#endif #endif
...@@ -64,14 +64,13 @@ static void Power_KL30_Init(void) ...@@ -64,14 +64,13 @@ static void Power_KL30_Init(void)
g_stRTCInformation.u8RTCYear = 20; g_stRTCInformation.u8RTCYear = 20;
//RTE_RTC_Init(g_stRTCInformation); //RTE_RTC_Init(g_stRTCInformation);
Menu_User_Init(); Menu_User_Init();
Can_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
} }
//extern uint32_t PowerIgnOffTimeLine;
static void Power_Wakeup_Init(void) static void Power_Wakeup_Init(void)
{ {
// PowerIgnOffTimeLine = 0;
Gpio_Init(Gpio_WakeUp_Init); Gpio_Init(Gpio_WakeUp_Init);
eeprom_StoreInfo_Init(); eeprom_StoreInfo_Init();
Analog_Signal_Conv_Init(); Analog_Signal_Conv_Init();
...@@ -89,6 +88,7 @@ static void Power_Wakeup_Init(void) ...@@ -89,6 +88,7 @@ static void Power_Wakeup_Init(void)
//Telltales_Init(); //Telltales_Init();
Key_KL30_Init_EXample(); Key_KL30_Init_EXample();
Menu_User_WAKEUP(); Menu_User_WAKEUP();
Can_Init();
Protocol_KL30_Wakeup_Init(); Protocol_KL30_Wakeup_Init();
RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising); RTE_DEEPSLEEP_GPIO_Interrupt_Enable(KL15_AD_IN, Trigger_Rising);
} }
...@@ -184,6 +184,7 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -184,6 +184,7 @@ static Power_Status_em Power_Stay_Protect(void)
/* 关闭所有外设,坪保留AD采集,电溝状思切�? */ /* 关闭所有外设,坪保留AD采集,电溝状思切�? */
{ {
TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0); TimerM_PWM_set_duty(TIMERM_COUNTER1, TIMERM_CHB, 0);
CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Disable);
} }
u8PowerSts = EM_IGN_OFF_Init; u8PowerSts = EM_IGN_OFF_Init;
/* 电溝模弝正常 */ /* 电溝模弝正常 */
...@@ -196,6 +197,7 @@ static Power_Status_em Power_Stay_Protect(void) ...@@ -196,6 +197,7 @@ static Power_Status_em Power_Stay_Protect(void)
if ( SYS_OPR_STAT_RUN ) if ( SYS_OPR_STAT_RUN )
{ {
CAN_TX_SetEnable(&CAN_CH0_CanMsgTxOp, CAN_N_TX_Enable);
return u8PowerSts; return u8PowerSts;
} }
......
...@@ -15,6 +15,8 @@ void Sys_2ms_Tasks(void) ...@@ -15,6 +15,8 @@ void Sys_2ms_Tasks(void)
Sys_Status_Update_Service(); Sys_Status_Update_Service();
Analog_Signal_Conv_Service(); Analog_Signal_Conv_Service();
AMT630H_Main(); AMT630H_Main();
Can_Write_Fun(&CAN_CH0_CanMsgTxOp, 2000u);
CanMSg_XMS_Analysis(&CAN_CH0_CanMsgOp, 2u);
} }
void Sys_5ms_Tasks(void) void Sys_5ms_Tasks(void)
......
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