增加计算机KGF通道

This commit is contained in:
2025-11-07 09:49:57 +08:00
parent 28e3430e60
commit 9a71ca1edb

View File

@@ -12,37 +12,37 @@
uint32_t OTA_CANTxID = 0x02;//Ĭ<>Ϸ<EFBFBD><CFB7><EFBFBD>IDΪ0x02
uint32_t OTA_CANRxID = 0x01;//Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD>IDΪ0x01
uint32_t WDT_CANRxID = 0x03;//Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD>IDΪ0x03
uint32_t OTA_CANTxID = 0x02;//Ĭ<>Ϸ<EFBFBD><CFB7><EFBFBD>IDΪ0x02
uint32_t OTA_CANRxID = 0x01;//Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD>IDΪ0x01
uint32_t WDT_CANRxID = 0x03;//Ĭ<>Ͻ<EFBFBD><CFBD><EFBFBD>IDΪ0x03
Timer can_timer_interface1;
Timer can_timer_interface2;
bool ecu_online = 0;//0<><30><EFBFBD>ߣ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
bool ecu_online = 0;//0<><30><EFBFBD>ߣ<EFBFBD>1<EFBFBD><31><EFBFBD><EFBFBD>
UnCanFault can_fault_info = {
.bit_data.navigator_count = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor1_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor2_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.bms_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.temperature_count = 0, //<2F>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.remote_count = 0, //ң<>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.navigator_count = 0, //<2F><><EFBFBD><EFBFBD><EFBFBD>Ǽ<EFBFBD><C7BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor1_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor2_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.bms_count = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.temperature_count = 0, //<2F>¶ȼ<C2B6><C8BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.remote_count = 0, //ң<>ؼ<EFBFBD><D8BC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.navigator_state = 0, //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor1_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor2_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.bms_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.temperature_state = 0, //<2F><EFBFBD>״̬
.bit_data.remote_state = 0, //ң<><D2A3>״̬
.bit_data.navigator_state = 0, //<2F>Զ<EFBFBD><D4B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor1_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.motor2_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.bms_state = 0, //<2F>ֶ<EFBFBD><D6B6><EFBFBD><EFBFBD>ݼ<EFBFBD><DDBC><EFBFBD><EFBFBD><EFBFBD>
.bit_data.temperature_state = 0, //<2F><EFBFBD>״̬
.bit_data.remote_state = 0, //ң<><D2A3>״̬
};
//
//StrCanFifoQueue can0_Queue;//8֡can<61><6E><EFBFBD><EFBFBD><E6A3AC><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
//StrCanFifoQueue can0_Queue;//8֡can<61><6E><EFBFBD><EFBFBD><E6A3AC><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
//StrCanFifoQueue can1_Queue;
//StrCanFifoQueue can2_Queue;
//StrCanFifoQueue can3_Queue;
@@ -52,19 +52,19 @@ UnCanFault can_fault_info = {
//StrCanFifoQueue can7_Queue;
//bool busoff_occur_flag = false;//busoff<66><66>־
//bool busoff_occur_flag = false;//busoff<66><66>־
bool can_0_busoff_flag = false;//busoff<66><66>־
bool can_1_busoff_flag = false;//busoff<66><66>־
bool can_2_busoff_flag = false;//busoff<66><66>־
bool can_3_busoff_flag = false;//busoff<66><66>־
bool can_4_busoff_flag = false;//busoff<66><66>־
bool can_5_busoff_flag = false;//busoff<66><66>־
bool can_6_busoff_flag = false;//busoff<66><66>־
bool can_7_busoff_flag = false;//busoff<66><66>־
bool can_0_busoff_flag = false;//busoff<66><66>־
bool can_1_busoff_flag = false;//busoff<66><66>־
bool can_2_busoff_flag = false;//busoff<66><66>־
bool can_3_busoff_flag = false;//busoff<66><66>־
bool can_4_busoff_flag = false;//busoff<66><66>־
bool can_5_busoff_flag = false;//busoff<66><66>־
bool can_6_busoff_flag = false;//busoff<66><66>־
bool can_7_busoff_flag = false;//busoff<66><66>־
flexcan_handle_t can_handle_0;//can<61><6E>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><E1B9B9>
flexcan_handle_t can_handle_0;//can<61><6E>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD><E1B9B9>
flexcan_handle_t can_handle_1;
flexcan_handle_t can_handle_2;
flexcan_handle_t can_handle_3;
@@ -105,7 +105,7 @@ uint8_t flexcan_config_rx_fifo(flexcan_handle_t *handle,
{
flexcan_frame_t *rx_fifo_frame;
//------------------------------------------------------------------------------
if(CAN_INDEX_0 == (handle->controller_id))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>жϺ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
if(CAN_INDEX_0 == (handle->controller_id))//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ͬ<EFBFBD><CDAC><EFBFBD>жϺ<D0B6><CFBA>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ַ
{
rx_fifo_frame = &fifo_Buf_0;
rx_fifo_frame->dataBuffer = &fifo_Data_0[0];
@@ -150,7 +150,7 @@ uint8_t flexcan_config_rx_fifo(flexcan_handle_t *handle,
return 0;
}
flexcan_set_rx_fifo_config(handle, config);//<2F><><EFBFBD><EFBFBD>fifo<66><6F><EFBFBD><EFBFBD>
flexcan_set_rx_fifo_config(handle, config);//<2F><><EFBFBD><EFBFBD>fifo<66><6F><EFBFBD><EFBFBD>
for (uint8_t i = 0; i < USED_MB_FOR_FIFO;
i++) {
@@ -235,14 +235,14 @@ void flexcan_Receive_callback_0(flexcan_handle_t *handle,
case FLEXCAN_RX_FIFO_IDLE:
if(TEMP_MODULE_INPUT_ID_1 == (buf->id))//<2F><EFBFBD>
if(TEMP_MODULE_INPUT_ID_1 == (buf->id))//<2F><EFBFBD>
{
for(i = 0; i < (buf->length); i++)
{
un_sw_sample.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_sw_sample, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_sw_sample, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
break;
@@ -303,7 +303,7 @@ void flexcan_Receive_callback_1(flexcan_handle_t *handle,
{
un_motor_input1.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_input1, 1);
}
else if( LEFT_FRONT_MOTOR_INPUT2 == (buf->id) )
@@ -312,8 +312,8 @@ void flexcan_Receive_callback_1(flexcan_handle_t *handle,
{
un_motor_temp1.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp1, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp1, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
else if( LEFT_REAR_MOTOR2_INPUT1 == (buf->id) )//
{
@@ -322,8 +322,8 @@ void flexcan_Receive_callback_1(flexcan_handle_t *handle,
{
un_motor_input3.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
// publishMessage(&un_motor_input3, 1); //<2F>޸<EFBFBD>Ϊ
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
// publishMessage(&un_motor_input3, 1); //<2F>޸<EFBFBD>Ϊ
}
else if( LEFT_REAR_MOTOR2_INPUT2 == (buf->id) )
{
@@ -331,8 +331,8 @@ void flexcan_Receive_callback_1(flexcan_handle_t *handle,
{
un_motor_temp3.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp3, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp3, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
else{}
break;
@@ -387,7 +387,7 @@ void flexcan_Receive_callback_2(flexcan_handle_t *handle,
{
un_motor_input2.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_input2, 1);
}
else if( RIGHT_FRONT_MOTOR_INPUT2 == (buf->id) )
@@ -396,8 +396,8 @@ void flexcan_Receive_callback_2(flexcan_handle_t *handle,
{
un_motor_temp2.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp2, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp2, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
else if( RIGHT_REAR_MOTOR_INPUT1 == (buf->id) )//
{
@@ -406,7 +406,7 @@ void flexcan_Receive_callback_2(flexcan_handle_t *handle,
{
un_motor_input4.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_input4, 1);
}
else if( RIGHT_REAR_MOTOR_INPUT2 == (buf->id) )
@@ -415,8 +415,8 @@ void flexcan_Receive_callback_2(flexcan_handle_t *handle,
{
un_motor_temp4.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp4, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_motor_temp4, 1);//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
}
else{}
break;
@@ -480,7 +480,7 @@ void flexcan_Receive_callback_3(flexcan_handle_t *handle,
{
un_bms_input.arr[i+8] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_bms_input, 1);
}
else{}
@@ -612,16 +612,16 @@ void flexcan_Receive_callback_6(flexcan_handle_t *handle,
break;
case FLEXCAN_RX_FIFO_IDLE:
if(OTA_CANRxID == (buf->id))//IDΪ1<CEAA><31> boot<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(OTA_CANRxID == (buf->id))//IDΪ1<CEAA><31> boot<6F><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
boot_can_flag = true;
FrameHeader = ( (buf->dataBuffer[0] << 8) | (buf->dataBuffer[1]) );
}
else if(WDT_CANRxID == (buf->id))//<2F><><EFBFBD>յ<EFBFBD>ι<EFBFBD><CEB9>ID
else if(WDT_CANRxID == (buf->id))//<2F><><EFBFBD>յ<EFBFBD>ι<EFBFBD><CEB9>ID
{
if(FEEDDOG_HEADER == ( (buf->dataBuffer[0] << 8) | (buf->dataBuffer[1]) ))
{
WDTReFresh_flag = true;//<2F><><EFBFBD><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD>־
WDTReFresh_flag = true;//<2F><><EFBFBD><EFBFBD>ι<EFBFBD><CEB9><EFBFBD><EFBFBD>־
printf("Feed dog flag received %d\n",getCurrentTime());
}
}
@@ -680,14 +680,14 @@ void flexcan_Receive_callback_7(flexcan_handle_t *handle,
break;
case FLEXCAN_RX_FIFO_IDLE:
if(REMOTE_ID == (buf->id))//ң<><D2A3><EFBFBD><EFBFBD>CAN
if(REMOTE_ID == (buf->id))//ң<><D2A3><EFBFBD><EFBFBD>CAN
{
can_fault_info.bit_data.remote_count ++;
for(i = 0; i < (buf->length); i++)
{
un_remote_control_input.arr[i] = buf->dataBuffer[i];
}
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
//<2F><><EFBFBD><EFBFBD><EFBFBD>ź<EFBFBD>
publishMessage(&un_remote_control_input, 1);
// printf("ori_remote_stop: %d\n", un_remote_control_input.bit_data.switch_b);
@@ -716,16 +716,16 @@ void flexcan_Receive_callback_7(flexcan_handle_t *handle,
}
//fifo_config <20>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
//can_config <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//call_back <20>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
//fifo_config <20>˲<EFBFBD><CBB2><EFBFBD><EFBFBD><EFBFBD>
//can_config <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//call_back <20>жϻص<CFBB><D8B5><EFBFBD><EFBFBD><EFBFBD>
uint8_t initialization_Flexcan(uint8_t can_index, const flexcan_config_t *can_config, flexcan_rx_fifo_config_t *fifo_config, flexcan_transfer_callback_t call_back)
{
flexcan_handle_t *handle;
uint8_t can_irq_num = 0;
uint32_t can_reg_base = 0;
//------------------------------------------------------------------
if(FLEXCAN7 == can_index)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1><EFBFBD><EFBFBD>ͬ<EFBFBD><EFBFBD><EFBFBD>жϺ<EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ַ
if(FLEXCAN7 == can_index)//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD><D1A1>ͬ<EFBFBD><CDAC><EFBFBD>жϺ<D0B6><CFBA>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD>ַ
{
handle = &can_handle_0;
can_irq_num = CANFD7_CANFD_INTR_NUM;
@@ -896,7 +896,7 @@ void flexcan_Busoff_Recovery(void)
/* initialization_all_flexcan. */
void initialization_All_Flexcan(void)
{
sdrv_gpio_set_pin_output_level(GPIO_H12, 0); //CANʹ<4E><CAB9>
sdrv_gpio_set_pin_output_level(GPIO_H12, 0); //CANʹ<4E><CAB9>
initialization_Flexcan(CAN_INDEX_0, &can_0_config, &can_0_fifo_config, flexcan_Receive_callback_0);//250k
@@ -920,26 +920,26 @@ void initialization_All_Flexcan(void)
//100ms <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
//100ms <20><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
void canTimerProcess(void *signal_id)
{
static uint8_t can_timer[5] = {0,0,0,0,0};
static uint8_t can_temp[10] = {0,0,0,0,0,0,0,0,0,0};//<2F>м<EFBFBD><D0BC>ж<EFBFBD>ֵ
static uint8_t can_temp[10] = {0,0,0,0,0,0,0,0,0,0};//<2F>м<EFBFBD><D0BC>ж<EFBFBD>ֵ
uint8_t temp = 0;
can_timer[0] ++;
if(can_timer[0] >= 1)//100ms<6D>ж<EFBFBD>һ<EFBFBD><D2BB>
if(can_timer[0] >= 1)//100ms<6D>ж<EFBFBD>һ<EFBFBD><D2BB>
{
can_timer[0] = 0;
if(can_fault_info.bit_data.motor1_count == can_temp[0])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(can_fault_info.bit_data.motor1_count == can_temp[0])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
can_fault_info.bit_data.motor1_state = FAULT;
}
else
{
can_fault_info.bit_data.motor1_state = NORMAL;
can_temp[0] = can_fault_info.bit_data.motor1_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
can_temp[0] = can_fault_info.bit_data.motor1_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
}
if(can_fault_info.bit_data.motor1_state != can_temp[1])
@@ -949,14 +949,14 @@ void canTimerProcess(void *signal_id)
}
if(can_fault_info.bit_data.motor2_count == can_temp[2])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(can_fault_info.bit_data.motor2_count == can_temp[2])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
can_fault_info.bit_data.motor2_state = FAULT;
}
else
{
can_fault_info.bit_data.motor2_state = NORMAL;
can_temp[2] = can_fault_info.bit_data.motor2_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
can_temp[2] = can_fault_info.bit_data.motor2_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
}
if(can_fault_info.bit_data.motor2_state != can_temp[3])
@@ -966,19 +966,19 @@ void canTimerProcess(void *signal_id)
}
}
can_timer[1] ++;//BMS<4D>ж<EFBFBD>
if(can_timer[1] >= 20)//2s<32>ж<EFBFBD>һ<EFBFBD><D2BB>
can_timer[1] ++;//BMS<4D>ж<EFBFBD>
if(can_timer[1] >= 20)//2s<32>ж<EFBFBD>һ<EFBFBD><D2BB>
{
can_timer[1] = 0;
//BMS
if(can_fault_info.bit_data.bms_count == can_temp[4])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
if(can_fault_info.bit_data.bms_count == can_temp[4])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
can_fault_info.bit_data.bms_state = FAULT;
}
else
{
can_fault_info.bit_data.bms_state = NORMAL;
can_temp[4] = can_fault_info.bit_data.bms_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
can_temp[4] = can_fault_info.bit_data.bms_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
}
if(can_fault_info.bit_data.bms_state != can_temp[5])
{
@@ -986,15 +986,15 @@ void canTimerProcess(void *signal_id)
temp ++;
}
//<2F><EFBFBD>ģ<EFBFBD><C4A3>
if(can_fault_info.bit_data.temperature_count == can_temp[6])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//<2F><EFBFBD>ģ<EFBFBD><C4A3>
if(can_fault_info.bit_data.temperature_count == can_temp[6])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
can_fault_info.bit_data.temperature_state = FAULT;
}
else
{
can_fault_info.bit_data.temperature_state = NORMAL;
can_temp[6] = can_fault_info.bit_data.temperature_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
can_temp[6] = can_fault_info.bit_data.temperature_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
}
if(can_fault_info.bit_data.temperature_state != can_temp[7])
{
@@ -1003,19 +1003,19 @@ void canTimerProcess(void *signal_id)
}
}
can_timer[2] ++;//ң<><D2A3><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if(can_timer[2] >= 5)//500ms<6D>ж<EFBFBD>һ<EFBFBD><D2BB>
can_timer[2] ++;//ң<><D2A3><EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>
if(can_timer[2] >= 5)//500ms<6D>ж<EFBFBD>һ<EFBFBD><D2BB>
{
can_timer[2] = 0;
//ң<><D2A3><EFBFBD><EFBFBD>
if(can_fault_info.bit_data.remote_count == can_temp[8])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
//ң<><D2A3><EFBFBD><EFBFBD>
if(can_fault_info.bit_data.remote_count == can_temp[8])//<2F><><EFBFBD><EFBFBD>һ<EFBFBD><D2BB><EFBFBD><EFBFBD>ʾ<EFBFBD><CABE><EFBFBD><EFBFBD>
{
can_fault_info.bit_data.remote_state = FAULT;
}
else
{
can_fault_info.bit_data.remote_state = NORMAL;
can_temp[8] = can_fault_info.bit_data.remote_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
can_temp[8] = can_fault_info.bit_data.remote_count;//<2F><><EFBFBD>ݸ<EFBFBD><DDB8><EFBFBD>
}
if(can_fault_info.bit_data.remote_state != can_temp[9])
{
@@ -1024,58 +1024,58 @@ void canTimerProcess(void *signal_id)
}
}
can_timer[4] ++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ź<EFBFBD>
if( (0 != temp) || (can_timer[4] >= 5) )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>500<30><30><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
can_timer[4] ++;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڷ<EFBFBD><DAB7><EFBFBD><EFBFBD>ź<EFBFBD>
if( (0 != temp) || (can_timer[4] >= 5) )//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>500<30><30><EFBFBD><EFBFBD><EFBFBD>źţ<C5BA><C5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E4BBAF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
can_timer[4] = 0;
publishMessage(&can_fault_info, 1);//
}
//busoff<66>ж<EFBFBD>
//busoff<66>ж<EFBFBD>
can_timer[3] ++;
if(can_timer[3] >= 10)//100*100*10 = 1s<31><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
if(can_timer[3] >= 10)//100*100*10 = 1s<31><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
can_timer[3] = 0;
flexcan_Busoff_Recovery();//BUSS OFF<46><46><EFBFBD><EFBFBD>
flexcan_Busoff_Recovery();//BUSS OFF<46><46><EFBFBD><EFBFBD>
}
}
//static void processSdoOutput1(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output1, 8, 15);//
//}
//
//static void processSdoOutput2(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output2, 8, 16);
//}
//
//static void processSdoOutput3(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output3, 8, 17);
//}
//
//static void processSdoOutput4(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output4, 8, 18);
//}
//
//static void processSdoOutput5(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output5, 8, 19);
//}
//
//
//static void processSdoOutput7(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x601, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_sdo_output7, 8, 20);
//}
@@ -1083,39 +1083,39 @@ void canTimerProcess(void *signal_id)
static void processMotorOutput1(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_FRONT_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output1, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_REAR_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output3, 8, 16);//<2F><><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_FRONT_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output1, 8, 15);//<2F><><EFBFBD><31>غ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_REAR_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output3, 8, 16);//<2F><><EFBFBD><31>غ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>
}
static void processMotorOutput2(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_FRONT_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output2, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_REAR_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output4, 8, 16);//<2F><><EFBFBD><EFBFBD><EFBFBD>غ<EFBFBD>ת<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_FRONT_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output2, 8, 15);//<2F><><EFBFBD><32>غ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_REAR_MOTOR_OUTPUT1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output4, 8, 16);//<2F><><EFBFBD><32>غ<EFBFBD>ת<EFBFBD><D7AA><EFBFBD><EFBFBD><EFBFBD>
}
static void processMotorOutput3(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_FRONT_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output1.arr[8], 8, 17);//<2F><><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_REAR_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output3.arr[8], 8, 18);//<2F><><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_FRONT_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output1.arr[8], 8, 17);//<2F><><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, LEFT_REAR_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output3.arr[8], 8, 18);//<2F><><EFBFBD>1<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
static void processMotorOutput4(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_FRONT_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output2.arr[8], 8, 17);//<2F><><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_REAR_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output4.arr[8], 8, 18);//<2F><><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_FRONT_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output2.arr[8], 8, 17);//<2F><><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, RIGHT_REAR_MOTOR_OUTPUT2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_motor_output4.arr[8], 8, 18);//<2F><><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
static void processKgfOutput1(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E3ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>E3ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>
{
un_inf_can_kgf_output1.bit_data.can_rx5 = 0xE3;
CAN_Send_Msg(&can_handle_0, 0x11000002, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_inf_can_kgf_output1, 8, 15);//KGF1
@@ -1124,8 +1124,8 @@ static void processKgfOutput1(void *signal_id)
static void processKgfOutput2(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E3ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>E3ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>
{
un_inf_can_kgf_output2.bit_data.can_rx5 = 0xE3;
CAN_Send_Msg(&can_handle_0, 0x14000002, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_inf_can_kgf_output2, 8, 16);//KGF2
@@ -1135,8 +1135,8 @@ static void processKgfOutput2(void *signal_id)
//static void processKgfOutput2(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>E3ͬʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// if(1 == ecu_online)//20250318 <20>޸<EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߲<EFBFBD><DFB2>ܷ<EFBFBD><DCB7>ͣ<EFBFBD><CDA3><EFBFBD><EFBFBD><EFBFBD>ɼ<EFBFBD>ģ<EFBFBD><C4A3><EFBFBD>E3ͬʱ<CDAC><CAB1><EFBFBD><EFBFBD>
// {
// un_inf_can_kgf_output2.bit_data.can_rx5 = 0xE3;
// CAN_Send_Msg(&can_handle_0, 0x14000002, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_inf_can_kgf_output2, 8, 16);//KGF2
@@ -1148,60 +1148,60 @@ static void processKgfOutput2(void *signal_id)
static void processWheelSpeedOutput(void *signal_id)
{
float CANPressSpeedTemp = 0.0;//<2F>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>м<EFBFBD>ֵ
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
float CANPressSpeedTemp = 0.0;//<2F>ٶȼ<D9B6><C8BC><EFBFBD><EFBFBD>м<EFBFBD>ֵ
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CANPressSpeedTemp = (diff_data.left_motor_speed*(float)getParam("whl_dia") * M_PI*60)/1000.0/(float)getParam("gRatio");// ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD> 20241016 <20><><EFBFBD>Լ<EFBFBD><D4BC>ٱ<EFBFBD>
CANPressSpeedTemp = CANPressSpeedTemp*100;//,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><><CFB5>0.01
un_wheel_wpeed_output.bit_data.left_front = (uint16_t)((int16_t)(CANPressSpeedTemp));//ת<><D7AA>*1.8*60*100/1000/ ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>Ϊ0.01<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> 20240629 <20><><EFBFBD>ٱȲ<D9B1><C8B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>
un_wheel_wpeed_output.bit_data.left_rear = (uint16_t)((int16_t)(CANPressSpeedTemp));//<2F><>ת<EFBFBD><D7AA>Ϊint<6E><74><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>
CANPressSpeedTemp = (diff_data.left_motor_speed*(float)getParam("whl_dia") * M_PI*60)/1000.0/(float)getParam("gRatio");// ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD> 20241016 <20><><EFBFBD>Լ<EFBFBD><D4BC>ٱ<EFBFBD>
CANPressSpeedTemp = CANPressSpeedTemp*100;//,<2C><><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>100<30><30><><CFB5>0.01
un_wheel_wpeed_output.bit_data.left_front = (uint16_t)((int16_t)(CANPressSpeedTemp));//ת<><D7AA>*1.8*60*100/1000/ ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>Ϊ0.01<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> 20240629 <20><><EFBFBD>ٱȲ<D9B1><C8B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>
un_wheel_wpeed_output.bit_data.left_rear = (uint16_t)((int16_t)(CANPressSpeedTemp));//<2F><>ת<EFBFBD><D7AA>Ϊint<6E><74><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>
CANPressSpeedTemp = (diff_data.right_motor_speed*(float)getParam("whl_dia") * M_PI*60)/1000.0/(float)getParam("gRatio");// ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>
CANPressSpeedTemp = CANPressSpeedTemp*100;//,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><><CFB5>0.01
un_wheel_wpeed_output.bit_data.right_front = (uint16_t)((int16_t)(CANPressSpeedTemp));//ת<><D7AA>*1.8*60*100/1000/ ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>100<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD>Ϊ0.01<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> 20240629 <20><><EFBFBD>ٱȲ<D9B1><C8B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>
un_wheel_wpeed_output.bit_data.right_rear = (uint16_t)((int16_t)(CANPressSpeedTemp));//<2F><>ת<EFBFBD><D7AA>Ϊint<6E><74><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>
CANPressSpeedTemp = (diff_data.right_motor_speed*(float)getParam("whl_dia") * M_PI*60)/1000.0/(float)getParam("gRatio");// ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>
CANPressSpeedTemp = CANPressSpeedTemp*100;//,<2C><><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>100<30><30><><CFB5>0.01
un_wheel_wpeed_output.bit_data.right_front = (uint16_t)((int16_t)(CANPressSpeedTemp));//ת<><D7AA>*1.8*60*100/1000/ ת/<2F><><EFBFBD>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD>km/h һȦ1.8<EFBFBD><EFBFBD>,<2C><><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>100<30><30><EFBFBD><EFBFBD>ϵ<EFBFBD><CFB5>Ϊ0.01<EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><EFBFBD>Ϊ<EFBFBD>޷<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD> 20240629 <20><><EFBFBD>ٱȲ<D9B1><C8B2><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD><EFBFBD>Ѿ<EFBFBD>
un_wheel_wpeed_output.bit_data.right_rear = (uint16_t)((int16_t)(CANPressSpeedTemp));//<2F><>ת<EFBFBD><D7AA>Ϊint<6E><74><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>Ϊ<EFBFBD>޷<EFBFBD><DEB7><EFBFBD>
CAN_Send_Msg(&can_handle_4, 0x98, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_wheel_wpeed_output, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_4, 0x98, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_wheel_wpeed_output, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
static void processHBridgeOutput(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_5, 0x7F2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output, 8, 17);//H<><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_5, 0x722, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output1, 8, 19);//H<><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_5, 0x7F2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output, 8, 17);//H<><48><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_5, 0x722, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output1, 8, 19);//H<><48><EFBFBD><EFBFBD><EFBFBD>
}
static void processUnGatherOutput(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_0, 0x15000002, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_gather_output, 8, 18);//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_0, 0x15000002, FLEXCAN_EXTEND_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_gather_output, 8, 18);//<2F>ɼ<EFBFBD><C9BC><EFBFBD><EFBFBD>
}
static void processUltrasonicOutput(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_6, ULTRASONIC_ID_1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_ultrasonic_output1, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_6, ULTRASONIC_ID_1, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_ultrasonic_output1, 8, 15);//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//static void processHBridgeOutput2(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_5, 0x722, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output2, 8, 16);//H<><48><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_5, 0x722, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_h_bridge_output2, 8, 16);//H<><48><EFBFBD><EFBFBD><EFBFBD>
//}
//static void processLifterOutput(void *signal_id)
//{
// (void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_5, 0x6F2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_lifter_output, 8, 17);//<2F>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD><EFBFBD>
// (void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_5, 0x6F2, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, (uint8_t *)&un_lifter_output, 8, 17);//<2F>Ƹ<EFBFBD><C6B8><EFBFBD><EFBFBD>
//}
//can <20><><EFBFBD><EFBFBD> 100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
//can <20><><EFBFBD><EFBFBD> 100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
void canSendAll(void *signal_id)
{
static uint16_t wheel_speed_cnt = 0;
@@ -1213,7 +1213,7 @@ void canSendAll(void *signal_id)
// static uint8_t h_bridge_cnt = 0;
uint8_t CanData[8] = {0,0,0,0,0,0,0,0};
//-------------------------------------------------------------------------
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bms_cnt1 ++;
if(bms_cnt1 >= 1000)//1s
@@ -1222,7 +1222,7 @@ void canSendAll(void *signal_id)
CanData[0] = 0x5A;
CAN_Send_Msg(&can_handle_3, 0x100, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 1, 15);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_3, 0x100, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 1, 15);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
bms_cnt2 ++;
@@ -1232,12 +1232,12 @@ void canSendAll(void *signal_id)
CanData[0] = 0x5A;
CAN_Send_Msg(&can_handle_3, 0x101, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 1, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_3, 0x101, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 1, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
motor_power_cnt ++;
if(motor_power_cnt >= 1000)//1s<31><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
if(motor_power_cnt >= 1000)//1s<31><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
{
motor_power_cnt = 0;
processMotorOutput3(CanData);
@@ -1245,7 +1245,7 @@ void canSendAll(void *signal_id)
}
// motor_power_cnt ++;
// if(motor_power_cnt >= 10)//<2F><>ȡת<C8A1><D7AA> 20ms<6D><73><EFBFBD><EFBFBD>
// if(motor_power_cnt >= 10)//<2F><>ȡת<C8A1><D7AA> 20ms<6D><73><EFBFBD><EFBFBD>
// {
// motor_power_cnt = 0;
//
@@ -1259,7 +1259,7 @@ void canSendAll(void *signal_id)
// }
// kgf_cnt ++;
// if(kgf_cnt >= 5)//20210312 <20><><EFBFBD><EFBFBD>CANͨѶģ<D1B6><C4A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD> 20210710<31>޸<EFBFBD>Ϊ50ms<6D><73><EFBFBD><EFBFBD>
// if(kgf_cnt >= 5)//20210312 <20><><EFBFBD><EFBFBD>CANͨѶģ<D1B6><C4A3><EFBFBD><EFBFBD><EFBFBD> 20210710<31>޸<EFBFBD>Ϊ50ms<6D><73><EFBFBD><EFBFBD>
// {
// kgf_cnt = 0;
//
@@ -1267,7 +1267,7 @@ void canSendAll(void *signal_id)
// processKgfOutput2(CanData);
// }
//
//<2F><><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD>
//<2F><><EFBFBD>ٷ<EFBFBD><D9B7><EFBFBD>
wheel_speed_cnt ++;
if(wheel_speed_cnt >= 100)
{
@@ -1275,18 +1275,18 @@ void canSendAll(void *signal_id)
processWheelSpeedOutput(CanData);
// CAN_Send_Msg(&can_handle_0, 0x120, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_1, 0x121, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 17);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_2, 0x122, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 17);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_3, 0x123, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_4, 0x124, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_5, 0x125, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_6, 0x126, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, &un_can_debug_output.arr[0], 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_7, 0x127, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_0, 0x120, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_1, 0x121, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 17);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_2, 0x122, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 17);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_3, 0x123, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_4, 0x124, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_5, 0x125, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CAN_Send_Msg(&can_handle_6, 0x126, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, &un_can_debug_output.arr[0], 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// CAN_Send_Msg(&can_handle_7, 0x127, FLEXCAN_STANDARD_FRAME, FLEXCAN_FrameTypeData, CanData, 8, 16);//BMS<4D><53><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
//
//H<><48><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
//H<><48><EFBFBD><EFBFBD><EFBFBD>ݷ<EFBFBD><DDB7><EFBFBD>
// h_bridge_cnt ++;
// if(h_bridge_cnt >= 5)
// {
@@ -1295,25 +1295,25 @@ void canSendAll(void *signal_id)
// processHBridgeOutput(CanData);
// }
timerStart(&can_timer_interface1,1,1);//1ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
timerStart(&can_timer_interface1,1,1);//1ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
}
// can<61><6E>ʱ<EFBFBD><CAB1><EFBFBD>źŴ<C5BA><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// can<61><6E>ʱ<EFBFBD><CAB1><EFBFBD>źŴ<C5BA><C5B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static void canInterfaceTimerProcess(void *signal_id)
{
(void)signal_id; // <20><><EFBFBD>DZ<EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD>ʹ<EFBFBD>ã<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// uint32_t time_boot = getCurrentTime();//<2F><>¼<EFBFBD><C2BC>ǰʱ<C7B0><CAB1>
(void)signal_id; // <20><>DZ<EFBFBD><C7B1><EFBFBD>Ϊ<EFBFBD><CEAA>ʹ<EFBFBD>ã<EFBFBD><C3A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
// uint32_t time_boot = getCurrentTime();//<2F><>¼<EFBFBD><C2BC>ǰʱ<C7B0><CAB1>
canTimerProcess(signal_id);
// printf("motor1 interval:%d,motor2 interval:%d\n",time_elapsed,time_elapsed1);//<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD><EFBFBD><EFBFBD>
// printf("motor1 interval:%d,motor2 interval:%d\n",time_elapsed,time_elapsed1);//<2F><>ӡ<EFBFBD><D3A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>2<EFBFBD><32><EFBFBD>ռ<EFBFBD><D5BC>
timerStart(&can_timer_interface2,100,1);//100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
timerStart(&can_timer_interface2,100,1);//100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
// printf("canInterface spend time:%d\n",getCurrentTime() - time_boot);//<2F><><EFBFBD><EFBFBD>app<EFBFBD><EFBFBD><EFBFBD>˶೤ʱ<EFBFBD><EFBFBD>
// printf("canInterface spend time:%d\n",getCurrentTime() - time_boot);//<2F><><EFBFBD>app<70><70><EFBFBD>˶೤ʱ<E0B3A4><CAB1>
}
static void canInterfaceInput(void *signal_id)
@@ -1326,7 +1326,7 @@ static void canInterfaceInput(void *signal_id)
// APPģ<50><C4A3><EFBFBD>ij<EFBFBD>ʼ<EFBFBD><EFBFBD>
// APPģ<50><C4A3>ij<EFBFBD>ʼ<EFBFBD><CABC>
void canInterfaceInit(void)
{
memset(&un_motor_input1, 0, sizeof(UnMotorInput));
@@ -1367,7 +1367,7 @@ void canInterfaceInit(void)
// un_motor_output1.bit_data.set_torque = 30000;//<2F><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// un_motor_output1.bit_data.set_torque = 30000;//<2F><><EFBFBD><EFBFBD>ƫ<EFBFBD><C6AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><CABC>
// un_motor_output1.bit_data.set_rotation_speed = 30000;
// un_motor_output1.bit_data.mode = 0;
// un_motor_output2.bit_data.set_torque = 30000;
@@ -1381,10 +1381,10 @@ void canInterfaceInit(void)
memset(&un_wheel_wpeed_output, 0, sizeof(UnWheelSpeedOutput));
memset(&un_remote_control_input, 0, sizeof(UnRemoteControlInput));
un_inf_can_kgf_output2.bit_data.KGF04 = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD>
un_inf_can_kgf_output2.bit_data.KGF04 = 1;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɱ<EFBFBD><C9B1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǿ<EFBFBD><C7BF><EFBFBD><EFBFBD>Լ<EFBFBD><D4BC>ϵ<EFBFBD><CFB5>ͨ<EFBFBD><CDA8>
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> brake_timer <20>ĵ<EFBFBD>ַ<EFBFBD><D6B7>Ϊ<EFBFBD>ź<EFBFBD>ID
// <20><>ʼ<EFBFBD><CABC><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>ʹ<EFBFBD><CAB9> brake_timer <20>ĵ<EFBFBD>ַ<EFBFBD><D6B7>Ϊ<EFBFBD>ź<EFBFBD>ID
timerInit(&can_timer_interface1);
timerInit(&can_timer_interface2);
@@ -1399,8 +1399,8 @@ void canInterfaceInit(void)
subscribe(&un_wheel_wpeed_output, processWheelSpeedOutput);
subscribe(&un_h_bridge_output, processHBridgeOutput);
subscribe(&un_gather_output, processUnGatherOutput);
subscribe(&un_sw_sample, canInterfaceInput); // <20><>ͣ<EFBFBD><CDA3><EFBFBD>ء<EFBFBD><D8A1><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־
subscribe(&un_ultrasonic_output1, processUltrasonicOutput); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
subscribe(&un_sw_sample, canInterfaceInput); // <20><>ͣ<EFBFBD><CDA3><EFBFBD>ء<EFBFBD><D8A1><EFBFBD>ѹ<EFBFBD><D1B9><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ѱ<EFBFBD>־
subscribe(&un_ultrasonic_output1, processUltrasonicOutput); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
@@ -1419,9 +1419,9 @@ void canInterfaceInit(void)
// subscribe(&un_sdo_output5, processSdoOutput5);
// subscribe(&un_sdo_output7, processSdoOutput7);
timerStart(&can_timer_interface1,1,1);//1ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
timerStart(&can_timer_interface1,1,1);//1ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
timerStart(&can_timer_interface2,100,1);//100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
timerStart(&can_timer_interface2,100,1);//100ms<6D><73><EFBFBD><EFBFBD>һ<EFBFBD><D2BB>
printf( "canInterface: initial OK %d\n",getCurrentTime());
}