REB基本OK

This commit is contained in:
sunbeam 2024-12-23 16:38:20 +08:00
parent c9428891ad
commit 1fa3985b8b
4 changed files with 25 additions and 6 deletions

View File

@ -1598,9 +1598,10 @@ void lin_lld_sci_isr ()
/* trigger callback */ /* trigger callback */
CALLBACK_HANDLER((l_ifc_handle)ifc, LIN_LLD_CHECKSUM_ERR, current_id); CALLBACK_HANDLER((l_ifc_handle)ifc, LIN_LLD_CHECKSUM_ERR, current_id);
lin_goto_idle_state(); lin_goto_idle_state();
lin_pFrameBuf[7] |= 0x80;
} }
lin_pFrameBuf[6] = l_status.byte; //lin_pFrameBuf[5] = tmp_byte;
//lin_pFrameBuf[6] = l_status.byte;
} }
cnt_byte++; cnt_byte++;
break; break;
@ -1619,6 +1620,20 @@ void lin_lld_sci_isr ()
} }
l_u8_wr_LI0_MFL_Zaehler(MFS_RollingCounter); l_u8_wr_LI0_MFL_Zaehler(MFS_RollingCounter);
} }
if (cnt_byte==6)
{
if (lin_error_in_response == 1)
{
response_buffer[8] |= 0x80;
}
else
{
response_buffer[8] &= 0x7f;
}
response_buffer[9] = lin_checksum(response_buffer, lin_process_parity(current_id,MAKE_PARITY));
}
} }
if (0 == (sci_flag_sr1&SCISR1_TC_MASK )) if (0 == (sci_flag_sr1&SCISR1_TC_MASK ))
@ -1662,6 +1677,8 @@ void lin_lld_sci_isr ()
/* Trigger callback */ /* Trigger callback */
CALLBACK_HANDLER((l_ifc_handle)ifc, LIN_LLD_TX_COMPLETED, current_id); CALLBACK_HANDLER((l_ifc_handle)ifc, LIN_LLD_TX_COMPLETED, current_id);
lin_goto_idle_state(); lin_goto_idle_state();
lin_error_in_response = 0;
lin_pFrameBuf[7] &= 0x7f;
break; break;
/****************************** /******************************
*** 4.8 SLAVE: Low power mode *** 4.8 SLAVE: Low power mode

View File

@ -537,10 +537,11 @@ void lin_process_uncd_frame
if (MAKE_UNCONDITIONAL_FRAME == type) if (MAKE_UNCONDITIONAL_FRAME == type)
{ {
/* get data from lin frame buffer */ /* get data from lin frame buffer */
flag = lin_frame_updating_flag_tbl[frame_index]; flag = lin_frame_updating_flag_tbl[frame_index];//TODO:有溢出?
for (i = 1; i < lin_lld_response_buffer[0]+1; i++, frame_byte_offset++) for (i = 1; i < lin_lld_response_buffer[0]+1; i++, frame_byte_offset++)
{ {
/*
if(flag & (1<<(i-1))) if(flag & (1<<(i-1)))
{ {
lin_lld_response_buffer[i] = buffer_backup_data[i-1]; lin_lld_response_buffer[i] = buffer_backup_data[i-1];
@ -548,7 +549,8 @@ void lin_process_uncd_frame
else else
{ {
lin_lld_response_buffer[i] = lin_pFrameBuf[frame_byte_offset]; lin_lld_response_buffer[i] = lin_pFrameBuf[frame_byte_offset];
} }*/
lin_lld_response_buffer[i] = lin_pFrameBuf[frame_byte_offset];
} }
} }
else else

View File

@ -40,7 +40,7 @@ const TYPE_DIDSRVARR DID_CheckArr[DEF_DID_NUM]={
}; };
//const char DIDList_SWVersion[8]@0xff7000="SW0102"; //const char DIDList_SWVersion[8]@0xff7000="SW0102";
const char DIDList_SWVersion[4]="0308"; const char DIDList_SWVersion[4]="0309";
const char DIDList_HWVersion[3]="H04"; const char DIDList_HWVersion[3]="H04";
const unsigned char DIDList_PartNumber[8]={0x11,0x22,0x33,0x44}; const unsigned char DIDList_PartNumber[8]={0x11,0x22,0x33,0x44};
const unsigned char DIDList_ManufacturingData[8]={0x20,0x20,0x07,0x22}; const unsigned char DIDList_ManufacturingData[8]={0x20,0x20,0x07,0x22};

View File

@ -86,7 +86,7 @@
#define _TL_FRAME_SUPPORT_ _TL_MULTI_FRAME_ #define _TL_FRAME_SUPPORT_ _TL_MULTI_FRAME_
/* frame buffer size */ /* frame buffer size */
#define LIN_FRAME_BUF_SIZE 12 #define LIN_FRAME_BUF_SIZE 30
#define LIN_FLAG_BUF_SIZE 6 #define LIN_FLAG_BUF_SIZE 6
/**********************************************************************/ /**********************************************************************/