初步修改

This commit is contained in:
sunbeam 2024-03-18 00:26:23 +08:00
parent bbb01e5fed
commit 0d077efbc3
14 changed files with 264 additions and 103 deletions

View File

@ -245,7 +245,7 @@ FuncBootSeq = function(){
}
else {
var ret = FuncWait(0x28);
nextstate(ret);
nextstate(0);
}
}
case 6 {

File diff suppressed because one or more lines are too long

View File

@ -1,19 +1,119 @@
QualityReport
2024年3月8日 11:32:24
2024年3月18日 0:23:52
------ Start build(ECU_APP, DefaultBuild) ------
------ Build ended(Error:0, Warning:0)(ECU_APP, DefaultBuild) ------
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\ccrl.exe diagnose\extern.c -cpu=S3 -obj_path=DefaultBuild "-dev=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF" -g -g_line -I diagnose\DTC -I diagnose\CanTrcv -I sys -I . -I rscan_driver -I diagnose -I DataFlash -I CanNw -I diagnose\CanTp -I diagnose\CanIf -I user -D DEBUG1 -c -msg_lang=english
diagnose\extern.c(99):W0520111:Statement is unreachable
diagnose\extern.c(128):W0520940:Missing return statement at end of non-void function "GetMotorLockStatus"
diagnose\extern.c(174):W0520111:Statement is unreachable
diagnose\extern.c(315):W0520111:Statement is unreachable
diagnose\extern.c(319):W0520111:Statement is unreachable
diagnose\extern.c(323):W0520111:Statement is unreachable
diagnose\extern.c(327):W0520111:Statement is unreachable
diagnose\extern.c(524):W0520940:Missing return statement at end of non-void function "GetBcmCommFault"
diagnose\extern.c(541):W0520940:Missing return statement at end of non-void function "GetAcpCommFault"
C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\Bin\rlink.exe -subcommand=DefaultBuild\ECU_APP.clnk
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
RAMDATA SECTION: 00000c5b Byte(s)
ROMDATA SECTION: 00000658 Byte(s)
PROGRAM SECTION: 00004fd6 Byte(s)
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
W0561017:The evaluation period of CC-RL V1 has expired. Please consider purchasing the product.
Renesas Optimizing Linker Completed
------ Build ended(Error:0, Warning:12)(ECU_APP, DefaultBuild) ------
--- CommandFile 1 ---
DefaultBuild\ECU_APP.clnk :
-Input=DefaultBuild\cstart.obj
-Input=DefaultBuild\stkinit.obj
-Input=DefaultBuild\r_pfdl.obj
-Input=DefaultBuild\RL78_RCAN.obj
-Input=DefaultBuild\r_rl78_can_drv.obj
-Input=DefaultBuild\r_rl78_can_irq.obj
-Input=DefaultBuild\r_systeminit.obj
-Input=DefaultBuild\r_main.obj
-Input=DefaultBuild\r_cg_wdt_user.obj
-Input=DefaultBuild\r_cg_wdt.obj
-Input=DefaultBuild\r_cg_timer_user.obj
-Input=DefaultBuild\r_cg_timer.obj
-Input=DefaultBuild\r_cg_port_user.obj
-Input=DefaultBuild\r_cg_port.obj
-Input=DefaultBuild\r_cg_cgc_user.obj
-Input=DefaultBuild\r_cg_cgc.obj
-Input=DefaultBuild\r_cg_adc_user.obj
-Input=DefaultBuild\r_cg_adc.obj
-Input=DefaultBuild\VectorTable.obj
-Input=DefaultBuild\CanNw.obj
-Input=DefaultBuild\CanNwConfig.obj
-Input=DefaultBuild\Dcm_App.obj
-Input=DefaultBuild\Dcm_App_Cfg.obj
-Input=DefaultBuild\Dcm_Cfg.obj
-Input=DefaultBuild\Dcm_DID.obj
-Input=DefaultBuild\Dcm_DID_Cfg.obj
-Input=DefaultBuild\Dcm_Key.obj
-Input=DefaultBuild\extern.obj
-Input=DefaultBuild\CanIf.obj
-Input=DefaultBuild\CanIf_Cfg.obj
-Input=DefaultBuild\CanTp_Cfg.obj
-Input=DefaultBuild\CanTrcv.obj
-Input=DefaultBuild\CanTrcv_Cfg.obj
-Input=DefaultBuild\DCM_DTC.obj
-Input=DefaultBuild\Dcm.obj
-Input=DefaultBuild\CanTp.obj
-Input=DefaultBuild\r_cg_intc.obj
-Input=DefaultBuild\r_cg_intc_user.obj
-Input=DefaultBuild\appTask.obj
-Input=DefaultBuild\can_user.obj
-Input=DefaultBuild\hwCtrl.obj
-LIBrary=DataFlash\pfdl.lib
-SECURITY_ID=00000000000000000000
-DEVICE=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF
-DEBug
-NOCOmpress
-NOOPtimize
-OUtput=DefaultBuild\ECU_APP.abs
-LIBrary=C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\lib\rl78em4s.lib
-LIBrary=C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\lib\malloc_n.lib
-LIBrary=C:\Program Files (x86)\Renesas Electronics\CS+\CC\CC-RL\V1.11.00\lib\rl78em4r.lib
-OCDBG=04
-USER_OPT_BYTE=E933E8
-LISt=DefaultBuild\ECU_APP.map
-SHow=Reference,Xreference,Total_size,STRUCT
-STARt=VectorRemapingAddr_n,.const,.text,.RLIB,.SLIB,PFDL_COD,.textf,.constf,.data,.sdata/0A000,DID_TBL_f/19C00,KAM_SEG_n/FE500,.dataR,.bss/FE510,.sdataR,.sbss/FFE20
-ROm=.data=.dataR
-ROm=.sdata=.sdataR
-Message
-Total_size
-NOLOgo
-end
-Input=DefaultBuild\ECU_APP.abs
-DEVICE=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF
-OUtput=DefaultBuild\ECU_APP.mot
-FOrm=Stype
-REcord=S3
-BYte_count=10
-Message
-end
-Input=DefaultBuild\ECU_APP.abs
-DEVICE=C:\Program Files (x86)\Renesas Electronics\CS+\CC\Device\RL78\Devicefile\DR5F10BBG.DVF
-OUtput=output\ECU_APP.S19= A000-19FFF
-FOrm=Stype
-REcord=S3
-SPace=FF
-BYte_count=10
-Message
-exit
--- SHA1 hash value of output files ---
F:\FCB_project\temp\CFMOTOR\code\ECU_APP\DefaultBuild\ECU_APP.abs: bd52c2ad8de9bdfb0e42ee4582de115cf1889b42
F:\FCB_project\temp\CFMOTOR\code\ECU_APP\DefaultBuild\ECU_APP.mot: 0f0821526fddaf4871703c857fd6e97db69ee67a
F:\FCB_project\temp\CFMOTOR\code\ECU_APP\output\ECU_APP.S19: 6a33102150086edb949a8b2d0349dd897666c1e9
E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.abs: 79450877dd5d24a71d9acbf1806f6b0d2977e672
E:\workspace\CFMOTO\CFMOTOR\ECU_APP\DefaultBuild\ECU_APP.mot: 7516e7665ffcc3b27ac3c251e43024c655f284db
E:\workspace\CFMOTO\CFMOTOR\ECU_APP\output\ECU_APP.S19: fbe9346c325105244353b197acb3a83cc89d14cb
--- System Information ---
*OS Version
Microsoft Windows 10 专业版 (-, 10.0.19045, WOW64)
Microsoft Windows 11 专业版 (-, 10.0.22631, WOW64)
*Language
中文(中国)
*.NET Framework Version
@ -33,16 +133,16 @@ F:\FCB_project\temp\CFMOTOR\code\ECU_APP\output\ECU_APP.S19: 6a33102150086edb949
*Product License
*Execution Place
E:\Program Files (x86)\renesas\CS+\CC
C:\Program Files (x86)\Renesas Electronics\CS+\CC
*Memory Usage
*Private Working Set
323 MB
206 MB
*Number of GDI Objects
2080
2138
*Number of USER Objects
1135
1194
*Opened Files
2 editors, 2 files, 31 KB
4 editors, 4 files, 25 KB
--- Build Tool Plug-in Information ---
RH850 Build tool CC-RH Plug-in
@ -171,11 +271,11 @@ Device Information Common Interface
DeviceInformation.dll
--- Main Project Information ---
F:\FCB_project\temp\CFMOTOR\code\ECU_APP\ECU_APP.mtpj
E:\workspace\CFMOTO\CFMOTOR\ECU_APP\ECU_APP.mtpj
Microcontroller Information
*R5F10BBG
*File Name: Version
RL78_Productlist.xml: V8.070000
RL78_Productlist.xml: V8.070100
R5F10BBG_common.xml: V1.13.00.XX.02
DR5F10BBG.DVF: V1.11
f13_bbx.ti: V1.01

View File

@ -14,23 +14,17 @@
#include "Dcm_extern.h"
const TsDcm_h_DtcGroupType CaDcm_u_DtcTable[DCM_SUPDTC_COUNT]={
{ 0,0xA8,0x80,0x16},
{ 1,0xA8,0x80,0x17},
{ 2,0xA8,0x80,0x88},
{ 3,0xA8,0x81,0x23},
{ 4,0xA8,0x82,0x23},
{ 5,0xA8,0x83,0x23},
{ 6,0xA8,0x84,0x23},
{ 7,0xA8,0x85,0x23},
{ 8,0xA8,0x86,0x25},
{ 9,0xC1,0x00,0x87},
{10,0xD1,0x10,0x87},
{11,0xD2,0x06,0x82},
{12,0xD4,0x06,0x83},
{13,0xD2,0x0B,0x82},
{14,0xD4,0x0B,0x83},
{15,0xD2,0x14,0x82},
{16,0xD4,0x14,0x83}
{ 0,0x91,0x17,0x16},//系统供电电压过低
{ 1,0x91,0x17,0x17},//系统供电电压过高
{ 2,0xC0,0x73,0x88},//BICAN总线BusOff
{ 3,0xA8,0x81,0x23},//旋钮下压按键卡滞
{ 4,0xA8,0x82,0x23},//旋钮上拨卡滞
{ 5,0xA8,0x83,0x23},//旋钮下拨卡滞
{ 6,0xA8,0x84,0x23},//旋钮左拨卡滞
{ 7,0xA8,0x85,0x23},//旋钮右拨卡滞
{ 8,0xA8,0x86,0x25},//旋钮光栅故障
{ 9,0xC1,0x00,0x87},//ECM节点通信丢失
{10,0xD1,0x10,0x87},//GBC节点通信丢失
};
/*
@ -202,6 +196,28 @@ void ClearDtcStutas(uint8 DtcIndex)
// DtcStutas[DtcIndex].DtcStutas &= ~(TestNotCompletedThisOperationCycle | TestFailed); //2017/7/2 11:52:29 del
DtcStutas[DtcIndex].DtcStutas &= ~TestFailed; //2017/7/2 11:52:56 spark add
}
extern uint16_t ECM_lost_count,GBC_lost_count;
static void CanDTC_LostCommDetected(void)
{
if (ECM_lost_count == 0)
{
WriteDtcSnapshot(AC_ECM_LOST);
}
else
{
ClearDtcStutas(AC_ECM_LOST);
}
if (GBC_lost_count == 0)
{
WriteDtcSnapshot(AC_GBC_LOST);
}
else
{
ClearDtcStutas(AC_GBC_LOST);
}
}
static void CanDTC_AcBusOffDetected(void)
{
@ -209,10 +225,14 @@ static void CanDTC_AcBusOffDetected(void)
// uint32 DtcSnapshotRecord[32];
if(ChkNetDiagCondition() == 0) return;
if(0!=GetCanBusOffErr()) {
if(0 != GetCanBusOffErr()) {
WriteDtcSnapshot(AC_BusOff);
DtcStutas[AC_BusOff].DtcStutas &= ~TestFailed;
}
else
{
ClearDtcStutas(AC_BusOff);
}
#if 0
if((BusOffCnt < 10) && (BusOffCnt > 0))
@ -248,12 +268,12 @@ static void PowerVoltageChk(void)
else
WriteDtcSnapshot(AC_OVER_VOLTAGE);
}
else
else if(GetVoltage(KL30_VOLTAGE) < 150)
{
if(PowerOverVoltCnt > 0){
PowerOverVoltCnt--;
if(PowerOverVoltCnt>37){ /* 37*40ms = 1.48s */
PowerOverVoltCnt = 37;
if(PowerOverVoltCnt>13){ /* 13*40ms = 520ms */
PowerOverVoltCnt = 12;
}
}
else{
@ -268,12 +288,12 @@ static void PowerVoltageChk(void)
else
WriteDtcSnapshot(AC_LOW_VOLTAGE);
}
else
else if(GetVoltage(KL30_VOLTAGE) > 100)
{
if(PowerUderVoltCnt > 0){
PowerUderVoltCnt--;
if(PowerUderVoltCnt>37){ /* 37*40ms = 1.48s */
PowerUderVoltCnt = 37;
if(PowerUderVoltCnt>13){ /* 13*40ms = 1.48s */
PowerUderVoltCnt = 12;
}
}
else
@ -542,7 +562,7 @@ void CanDTC_Task(void)
//CanDTC_CanCommunicationLostDetected(COMP_Information_ID);
//CanDTC_CompErrChk();
//CanDTC_MotorRunTimeChk();
CanDTC_LostCommDetected();
//MotorLockChk();
if(DtcTestCycleTim < DTC_TEST_CYCLE_TIM)

View File

@ -7,12 +7,12 @@
#define DCM_19SUPDTCEXTDATARECORD_COUNT (4U)
/* 19 06֧<EFBFBD>ֵ<EFBFBD>DTCExtDataRecord <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
#define DCM_SUPDTC_COUNT ( 17U )
/* <EFBFBD><EFBFBD>Ʒ֧<EFBFBD>ֵ<EFBFBD>DTC<EFBFBD><EFBFBD><EFBFBD><EFBFBD> */
/* 19 06????DTCExtDataRecord ???????? */
#define DCM_SUPDTC_COUNT ( 11U )
/* ???????DTC???? */
#define DTC_TEST_CYCLE_TIM 40U // 40mSһ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
#define DTC_TEST_CYCLE_TIM 40U // 40mS???????
#define ISO_15031_6_DTC_FORMAT 0U
#define ISO_14229_1_DTC_FORMAT 1U
@ -21,19 +21,19 @@
#define DTC_STATUS_AVAILABILITY_MASK 0x09U
typedef uint8 (*ReportDTCExtDataFun)(uint8* LeDemDtcNum,uint8 LeDemParameter,uint8* LeDemDataRecord);
/*19 06 <EFBFBD><EFBFBD><EFBFBD><EFBFBD>֧<EFBFBD>ֵ<EFBFBD> DTCExtDataRecordNumber <20>б<EFBFBD><D0B1><EFBFBD><E1B9B9>*/
/*19 06 ???????? DTCExtDataRecordNumber ?<3F><>?????*/
typedef struct
{
uint8 DTCExtDataRecordNumber; /*<EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>number*/
ReportDTCExtDataFun Function; /*<EFBFBD><EFBFBD>չ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>number <20><>Ӧ<EFBFBD><D3A6><EFBFBD><EFBFBD><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>*/
uint8 DTCExtDataRecordNumber; /*???????number*/
ReportDTCExtDataFun Function; /*???????number ????????????????*/
}DTCExtDataRecordType;
typedef struct
{
uint8 DtcIndex;
uint8 DtcHigh; /*DTC <EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>*/
uint8 DtcMiddle; /*DTC <EFBFBD>м<EFBFBD><EFBFBD>ֽ<EFBFBD>*/
uint8 DtcLow; /*DTC <EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>*/
uint8 DtcHigh; /*DTC ?????*/
uint8 DtcMiddle; /*DTC ?<3F><>????*/
uint8 DtcLow; /*DTC ?????*/
}TsDcm_h_DtcGroupType;
typedef enum
@ -93,7 +93,16 @@ extern DtcStutas_T DtcStutas[DCM_SUPDTC_COUNT];
#define AC_LOW_VOLTAGE 0
#define AC_OVER_VOLTAGE 1
#define AC_BusOff 3
#define AC_BusOff 2
#define AC_KEY_OK_STICK 3
#define AC_KEY_UP_STICK 4
#define AC_KEY_DOWN_STICK 5
#define AC_KEY_LEFT_STICK 6
#define AC_KEY_RIGHT_STICK 7
#define AC_KEY_GRID_STICK 8
#define AC_ECM_LOST 9
#define AC_GBC_LOST 10
#define AC_TEMP_MOTOR_SHORT_CUT_TO_VCC 2
#define AC_TEMP_MOTOR_SHORT_CUT_TO_GND 3

View File

@ -560,7 +560,7 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void)
{
SaDcm_u_RequestCounter++;
KamData.SeedReqTimes = SaDcm_u_RequestCounter | 0x10;
if(SaDcm_u_RequestCounter == 3)
if(SaDcm_u_RequestCounter == 4)
{
SaDcm_u_RequestDelayCount = DCM_SASERVERSTS_ERRORDELAY_COUNT;
SeDcm_u_KeyErrorCount = 3;
@ -585,10 +585,10 @@ TeDcm_h_ResultType MngDcm_SoftResetDeal(void)
SaDcm_u_RequestCounter=0;
KamData.SeedReqTimes = 0;
ReadFlashData(savebuf,0x000F1800,4);
//ReadFlashData(savebuf,0x000F1800,4);
savebuf[0] = SaDcm_u_RequestCounter;
savebuf[1] = SeDcm_u_KeyErrorCount;
WriteDataflash(savebuf,0x000F1800,4);
//WriteDataflash(savebuf,0x000F1800,4);
}
@ -1754,10 +1754,10 @@ void MngDcmKeyErrorDelayCountCutDown(void)
{
SeDcm_u_KeyErrorCount = 0U;
KamData.KeyErrTimes = SeDcm_u_KeyErrorCount;
ReadFlashData(savebuf,0x000F1800,4);
//ReadFlashData(savebuf,0x000F1800,4);
savebuf[0] = SaDcm_u_RequestCounter;
savebuf[1] = SeDcm_u_KeyErrorCount;
WriteDataflash(savebuf,0x000F1800,4);
//WriteDataflash(savebuf,0x000F1800,4);
}
}
if(SaDcm_u_RequestDelayCount > 0)
@ -1767,10 +1767,10 @@ void MngDcmKeyErrorDelayCountCutDown(void)
{
SaDcm_u_RequestCounter = 0U;
KamData.SeedReqTimes = SaDcm_u_RequestCounter;
ReadFlashData(savebuf,0x000F1800,4);
//ReadFlashData(savebuf,0x000F1800,4);
savebuf[0] = SaDcm_u_RequestCounter;
savebuf[1] = SeDcm_u_KeyErrorCount;
WriteDataflash(savebuf,0x000F1800,4);
//WriteDataflash(savebuf,0x000F1800,4);
}
}
}
@ -2094,8 +2094,8 @@ TeDcm_h_ResultType MngDcm_TransmitExitService(void)
//SeDcm_u_KeyErrorCount = KamData.KeyErrTimes; /*¶ÁÈ¡´¢´æµÄ´ÎÊý*/
ReadFlashData(readbuf,0x000F1800,4);
SaDcm_u_RequestCounter = readbuf[0];
SeDcm_u_KeyErrorCount = readbuf[1]; /*读取储存的次数*/
SaDcm_u_RequestCounter = 0;//readbuf[0];
SeDcm_u_KeyErrorCount = 0;//readbuf[1]; /*读取储存的次数*/
if(SaDcm_u_RequestCounter > 6)SaDcm_u_RequestCounter=0;
if(SeDcm_u_KeyErrorCount > 4)SeDcm_u_KeyErrorCount=0;

View File

@ -69,8 +69,8 @@
#define DCM_SASERVERSTS_ERRORDELAY_COUNT 10000U /*密钥错误延时*/
#define DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT 10000U /*密钥错误延时 上电默认值*/
#define DCM_SASERVERSTS_ERRORDELAY_COUNT 9000U /*密钥错误延时*/
#define DCM_SASERVERSTS_ERRORDELAY_COUNT_DEFAULT 9000U /*密钥错误延时 上电默认值*/
#define DCM_S3SEVERTIMEOUT 5000U /*S3ServerTime计时超时计数量标定*/

View File

@ -33,7 +33,7 @@ __far const unsigned char SW_VERSION[]={
'1' , //AC_SW_VERSION_06
'.' , //AC_SW_VERSION_07
'0' , //AC_SW_VERSION_08
'4' , //AC_SW_VERSION_09
'5' , //AC_SW_VERSION_09
' ' , //AC_SW_VERSION_10
' ' , //AC_SW_VERSION_11
' ' , //AC_SW_VERSION_12
@ -74,36 +74,29 @@ const unsigned char DID_0xF198_RepairShopCodeOrTesterSerialNumber[16]={0x20,0x20
const unsigned char DID_0xF199_ProgrammingOrConfigurationDate[4]={0x20,0x00,0x01,0x01};
const unsigned char DID_0xF19D_ECUInstallationDateDataIdentifier[4]={0x20,0x00,0x01,0x01};
const unsigned char DID_0xF112_VehicleName[8]={0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
can_frame_t TxCanMessageT;
can_frame_t TxCanMessageT;
extern uint16_t SupplyVoltage;
//const unsigned char DID_0xF15A[]={};
/****************************************************************************************/
/* 输入参数 ch : */
/* 0: 压缩机温<E69CBA>?? */
/* 1: 室<>?<3F><EFBFBD>?? */
/* 2: 室内温度 */
/* 返回值: */
/* 对应的电<E79A84>??*10即返回的电压值精度是0.1V的) */
/* */
unsigned char GetVoltage(unsigned char ch)
{
/* 这里<E8BF99>??以做数组的方式返回,但尽量不要在这里计算,例如下 return Voltage[ch]; */
// switch(ch)
// {
// case EVA_SENSOR:
// return uiDuctAdVal;
// break;
// case OUTSIDE_SENSOR:
// return uiAmbAdVal;
// break;
// case INSIDE_SENSOR:
// return uiIncarAdVal;
// break;
// default:
// return 0;
// break;
// }
switch (ch)
{
case KL30_VOLTAGE:
if (SupplyVoltage > 0xff)
{
return 0xff;
}
return SupplyVoltage;
default:
return 0;
}
return 0;
}
/************************************************************************************/
@ -597,7 +590,7 @@ void getOutputState(unsigned char* data)
{
}
extern uint16_t SupplyVoltage;
void getSupplyVoltage(unsigned char* data)
{
data[0] = SupplyVoltage;

View File

@ -71,7 +71,7 @@ void R_ADC_Create(void)
ADM2 = _00_AD_POSITIVE_VDD | _00_AD_NEGATIVE_VSS | _00_AD_AREA_MODE_1 | _00_AD_RESOLUTION_10BIT;
ADUL = _FF_AD_ADUL_VALUE;
ADLL = _00_AD_ADLL_VALUE;
ADS = _04_AD_INPUT_CHANNEL_4;
ADS = _04_AD_INPUT_CHANNEL_4;//_00_AD_INPUT_CHANNEL_0;
ADCE = 1U; /* enable AD comparator */
}

View File

@ -47,7 +47,8 @@ const uint16_t g_rxrule_table[CAN_RX_RULE_NUM][6] = {
{ 0x0403U, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8202U, 0x8003U },
{ 0x026DU, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8302U, 0x8004U },
{ 0x0400U, 0x0000U, 0x0000U, 0xD480U, 0x8402U, 0x8005U }, //NW PDU
{ 0x0108U, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8502U, 0x8006U }, //ECM
{ 0x0129U, 0x0000U, 0xFFFFU, 0xDFFFU, 0x8602U, 0x8007U }, //GBC
};

View File

@ -54,7 +54,7 @@
#define CAN_CFG_DLC_ERROR_IE CAN_ENABLE
/* ---- Rx rule ---- */
#define CAN_RX_RULE_NUM_CH0 (5U)
#define CAN_RX_RULE_NUM_CH0 (7U)
#define CAN_RX_RULE_NUM CAN_RX_RULE_NUM_CH0
/* ---- Rx buffer ---- */

View File

@ -69,7 +69,7 @@ unsigned char CAN_data_buf[8];
void __near RSCAN_INTCANGERR_interrupt(void)
{
}
extern uint16_t ECM_lost_count,GBC_lost_count;
/*CAN global reveive FIFO*/
void __near RSCAN_INTCANGRECC_interrupt(void)
{
@ -110,6 +110,20 @@ void __near RSCAN_INTCANGRECC_interrupt(void)
//Copy_Array_to_Array(CAN_26D.Msg_Byte, RxCanMessage.DB, 8);
}
}
if (RxCanMessage.IDL == 0x0108)
{
if (App28sTxRxStatus & 0x02 != 0) // Rx enable
{
ECM_lost_count = 500; // 500mS
}
}
if (RxCanMessage.IDL == 0x0129)
{
if (App28sTxRxStatus & 0x02 != 0) // Rx enable
{
GBC_lost_count = 500; // 500mS
}
}
}
/*CAN0 channel error*/

View File

@ -613,7 +613,7 @@ void IGN_Voltage_Detect(void)
{
uint32_t adval;
adval = getAdval(ADCH_IGN);
SupplyVoltage = (adval*57*5)>>10;
SupplyVoltage = (adval*57*5)>>10 + 7;
if (adval <= 305 )
{
IGN_Voltage_error_count++;
@ -649,7 +649,7 @@ void IGN_Voltage_Detect(void)
void value_init(void)
{
CAN_LostCount = 500;
BusOff_Detect_delay_count = 1000;
BusOff_Detect_delay_count = 500;
ucIgnStus = IGN_OFF;
}
void CAN_RX_Data_Handle(void)

View File

@ -40,7 +40,7 @@ extern uint16_t g_adval[12];
extern uint16_t ZYMotorLocation;
extern uint16_t KBMotorLocation;
uint16_t ECM_lost_count,GBC_lost_count;
void Copy_Array_to_Array(unsigned char *dest, unsigned char *src, unsigned char count)
{
unsigned char i = 0;
@ -69,10 +69,13 @@ void CAN_TX_MESSAGE_INIT(void)
TxCanMessage.LBL = 0; /* Label Data */
TxCanMessage.TS = 0; /* Timestamp Data */
Can_Msg_Change_Bcm();
GBC_lost_count = 1000;
ECM_lost_count = 1000;
}
//extern uint8_t flagOverCurrentKB,flagOverCurrentZY;
uint8_t txbuf1[8],txbuf2[8],txbuf3[8];
extern uint16_t SupplyVoltage;
void TxTestMsg(void)
{
uint8_t testdata[8] = {0};
@ -80,6 +83,10 @@ void TxTestMsg(void)
{
return;
}
testdata[0] = SupplyVoltage>>8;
testdata[1] = SupplyVoltage;
testdata[2] = ECM_lost_count>0?1:0;
testdata[3] = GBC_lost_count>0?1:0;
TransmitCAN_Message(0x333,8,testdata);
}
//立即发送
@ -89,11 +96,26 @@ void ClearTxCounter(void)
air_req_timer = 0;
}
void CommunicationLostDetected(void)
{
if (App28sTxRxStatus & 0x02 != 0) // Rx enable
{
if (ECM_lost_count > 0)
{
ECM_lost_count--;
}
if (GBC_lost_count > 0)
{
GBC_lost_count--;
}
}
}
void TxServe(void)
{
Can_RtnType re_flag;
static unsigned char sucNwSendCnt = 0;
CommunicationLostDetected();
////////////////////////////////////////////////////////////////////////
if ((ucNwSendPduType == SEND_NWAPP_PDU) || (ucNwSendPduType == SEND_APP_PDU))
{
@ -141,6 +163,8 @@ void TxServe(void)
Can_Msg_Change_Bcm();
re_flag = R_CAN_TrmByTRFIFO0_CH0(&TxCanMessage);
//TxTestMsg();
air_req_timer = C_100MS_1MS;
}