HW06初版

This commit is contained in:
sunbeam 2024-08-20 17:28:49 +08:00
parent c8834c5f0a
commit 421813d26c
15 changed files with 3687 additions and 3785 deletions

View File

@ -2,15 +2,15 @@
manifest_file_version: 1.0.0 manifest_file_version: 1.0.0
project: p417_SWTR project: p417_SWTR
creation_date: 2024-07-03T22:03:59.102+08:00[Asia/Shanghai] creation_date: 2024-08-20T15:12:07.975+08:00[Asia/Shanghai]
operating_system: Windows 10 operating_system: Windows 10
mcc_mode: IDE mcc_mode: IDE
mcc_mode_version: v6.20 mcc_mode_version: v6.20
device_name: ATSAME51J19A device_name: ATSAME51J19A
compiler: XC32 4.40 compiler: XC32 4.10
mcc_version: 5.5.1 mcc_version: 5.5.1
mcc_core_version: 5.7.1 mcc_core_version: 5.7.1
content_manager_version: 5.0.0 content_manager_version: 5.0.1
is_mcc_offline: false is_mcc_offline: false
is_using_prerelease_versions: false is_using_prerelease_versions: false
mcc_content_registries: https://registry.npmjs.org/ mcc_content_registries: https://registry.npmjs.org/
@ -19,5 +19,5 @@ device_library: {library_class: com.microchip.mcc.harmony.Harmony3Library, name:
packs: {name: SAME51_DFP, version: 3.8.253} packs: {name: SAME51_DFP, version: 3.8.253}
modules: modules:
- {name: csp, type: HARMONY, version: v3.18.5} - {name: csp, type: HARMONY, version: v3.18.5}
- {name: CMSIS_5, type: HARMONY, version: 5.9.0} - {name: CMSIS_5, type: HARMONY, version: 5.8.0}
- {name: touch, type: HARMONY, version: v3.16.0} - {name: touch, type: HARMONY, version: v3.16.0}

View File

@ -1,13 +1,13 @@
# #
#Wed Jul 03 23:11:12 CST 2024 #Mon Aug 19 22:53:46 CST 2024
mcal.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=1eaf555a844840d91945cb14109201c3 mcal.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=1eaf555a844840d91945cb14109201c3
conf.ids=mcal conf.ids=mcal
mcal.languagetoolchain.version=4.40 mcal.languagetoolchain.version=4.10
host.id=2546-oaqf-3d host.id=10k5-yicy-7x
configurations-xml=7fdab7bbeb77e28da32352067380d4c4 configurations-xml=3c603a65e149702643d6cf2071da16f0
mcal.Pack.dfplocation=C\:\\Program Files\\Microchip\\MPLABX\\v6.20\\packs\\Microchip\\SAME51_DFP\\3.7.242 mcal.Pack.dfplocation=E\:\\Program Files\\Microchip\\MPLABX\\v6.20\\packs\\Microchip\\SAME51_DFP\\3.7.242
com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321 com-microchip-mplab-nbide-embedded-makeproject-MakeProject.md5=f612087c95360c842296d189edfe3321
proj.dir=F\:\\work\\P417\\20240702\\P417_SWTR\\firmware\\p417_SWTR.X proj.dir=F\:\\FCB_project\\P417\\CODE\\20240727HW06\\P417_SWTR\\firmware\\p417_SWTR.X
mcal.platformTool.md5=null mcal.platformTool.md5=null
mcal.languagetoolchain.dir=C\:\\Program Files\\Microchip\\xc32\\v4.40\\bin mcal.languagetoolchain.dir=E\:\\Program Files\\Microchip\\xc32\\v4.10\\bin
host.platform=windows host.platform=windows

View File

@ -15,11 +15,11 @@
# $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ... # $ makeMP_CC="/opt/microchip/mplabc30/v3.30c/bin/pic30-gcc" ...
# #
SHELL=cmd.exe SHELL=cmd.exe
PATH_TO_IDE_BIN=E:/Program Files/Microchip/MPLABX/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/ PATH_TO_IDE_BIN=E:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/
# Adding MPLAB X bin directory to path. # Adding MPLAB X bin directory to path.
PATH:=E:/Program Files/Microchip/MPLABX/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH) PATH:=E:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/:$(PATH)
# Path to java used to run MPLAB X when this makefile was created # Path to java used to run MPLAB X when this makefile was created
MP_JAVA_PATH="E:\Program Files\Microchip\MPLABX\v6.00\sys\java\zulu8.54.0.21-ca-fx-jre8.0.292-win_x64/bin/" MP_JAVA_PATH="E:\Program Files\Microchip\MPLABX\v6.20\sys\java\zulu8.64.0.19-ca-fx-jre8.0.345-win_x64/bin/"
OS_CURRENT="$(shell uname -s)" OS_CURRENT="$(shell uname -s)"
MP_CC="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-gcc.exe" MP_CC="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-gcc.exe"
MP_CPPC="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-g++.exe" MP_CPPC="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-g++.exe"
@ -27,13 +27,12 @@ MP_CPPC="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-g++.exe"
MP_AS="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-as.exe" MP_AS="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-as.exe"
MP_LD="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-ld.exe" MP_LD="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-ld.exe"
MP_AR="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-ar.exe" MP_AR="E:\Program Files\Microchip\xc32\v4.10\bin\xc32-ar.exe"
DEP_GEN=${MP_JAVA_PATH}java -jar "E:/Program Files/Microchip/MPLABX/v6.00/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar" DEP_GEN=${MP_JAVA_PATH}java -jar "E:/Program Files/Microchip/MPLABX/v6.20/mplab_platform/platform/../mplab_ide/modules/../../bin/extractobjectdependencies.jar"
MP_CC_DIR="E:\Program Files\Microchip\xc32\v4.10\bin" MP_CC_DIR="E:\Program Files\Microchip\xc32\v4.10\bin"
MP_CPPC_DIR="E:\Program Files\Microchip\xc32\v4.10\bin" MP_CPPC_DIR="E:\Program Files\Microchip\xc32\v4.10\bin"
# MP_BC_DIR is not defined # MP_BC_DIR is not defined
MP_AS_DIR="E:\Program Files\Microchip\xc32\v4.10\bin" MP_AS_DIR="E:\Program Files\Microchip\xc32\v4.10\bin"
MP_LD_DIR="E:\Program Files\Microchip\xc32\v4.10\bin" MP_LD_DIR="E:\Program Files\Microchip\xc32\v4.10\bin"
MP_AR_DIR="E:\Program Files\Microchip\xc32\v4.10\bin" MP_AR_DIR="E:\Program Files\Microchip\xc32\v4.10\bin"
# MP_BC_DIR is not defined CMSIS_DIR=E:/Program Files/Microchip/MPLABX/v6.20/packs/arm/CMSIS/5.4.0
CMSIS_DIR=E:/Program Files/Microchip/MPLABX/v6.00/packs/arm/CMSIS/5.4.0 DFP_DIR=E:/Program Files/Microchip/MPLABX/v6.20/packs/Microchip/SAME51_DFP/3.7.242
DFP_DIR=C:/Users/dm01/.mchp_packs/Microchip/SAME51_DFP/3.7.242

File diff suppressed because it is too large Load Diff

View File

@ -57,7 +57,7 @@
#define GAC_ECU_SN_DEFAULT_VALUE {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20} #define GAC_ECU_SN_DEFAULT_VALUE {0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}
#define GAC_APP_SW_LOGICAL_ID {} #define GAC_APP_SW_LOGICAL_ID {}
#define GAC_BOOT_ID_DEFAULT_VALUE {'4','5','0'} #define GAC_BOOT_ID_DEFAULT_VALUE {'4','5','0'}
#define GAC_ECUSW_VERSION_DEFAULT_VALUE {'S','W','0','3','0','3',' ',' ',' ',0x20,0x20,0x20,0x20,0x20,0x20,0x20} #define GAC_ECUSW_VERSION_DEFAULT_VALUE {'S','W','0','4','0','1',' ',' ',' ',0x20,0x20,0x20,0x20,0x20,0x20,0x20}
#define GAC_APP_SUPPLIER_ID {0x46,0x49,0x43,0x4F,0x53,0x41,0x20,0x49,0x4E,0x54,0x45,0x52,0x4e}; #define GAC_APP_SUPPLIER_ID {0x46,0x49,0x43,0x4F,0x53,0x41,0x20,0x49,0x4E,0x54,0x45,0x52,0x4e};

View File

@ -4,7 +4,7 @@
#include "RTE.h" #include "RTE.h"
#include "forcedetect.h" #include "forcedetect.h"
#include "forceSnsr.h" #include "forceSnsr.h"
uint8 Touch_Sensor_Fault = 0,Touch_Sensor_Fault_key=0,Touch_Sensor_Fault_pad=0;
static uint8 Bat_Rng = 0; static uint8 Bat_Rng = 0;
static void Battery_Volt_Diag_Task(void) static void Battery_Volt_Diag_Task(void)
{ {
@ -76,54 +76,51 @@ static void Force_Sensor_Diag_Task(void)
} }
// Touch_Sensor_Sts00; // Touch_Sensor_Sts00;
static uint8 Touch_Sensor_Fault = 0;
static void Touch_Sensor_Diag_Task(void) static void Touch_Sensor_Diag_Task(void)//5ms
{ {
static uint16_t fault_count = 0;//fault_count2 = 0; static uint16_t fault_count1 = 0,fault_count2 = 0;
//uint16 CurrentDiag_Press_signal; if (Touch_Sensor_delta00 < 200 && Touch_Sensor_delta01 < 200 && Touch_Sensor_delta02 < 200 && Touch_Sensor_delta03 < 200 && Touch_Sensor_delta04 < 200)
if (Touch_Sensor_delta00 < 200 && Touch_Sensor_delta01 < 200 && Touch_Sensor_delta02 < 200 && Touch_Sensor_delta03 < 200 && Touch_Sensor_delta04 < 200 && {
Touch_Sensor_delta05 < 300 && Touch_Sensor_delta06 < 300 && Touch_Sensor_delta07 < 300 && Touch_Sensor_delta08 < 300 && Touch_Sensor_delta09 < 300 && Touch_Sensor_Fault_key = Touch_NoFault;
fault_count1 = 0;
}
else
{
fault_count1++;
if (fault_count1 > 40)
{
fault_count1 = 40;
}
Touch_Sensor_Fault_key = Touch_Out_Range;
}
if (Touch_Sensor_delta05 < 300 && Touch_Sensor_delta06 < 300 && Touch_Sensor_delta07 < 300 && Touch_Sensor_delta08 < 300 && Touch_Sensor_delta09 < 300 &&
Touch_Sensor_delta10 < 250 && Touch_Sensor_delta11 < 250 && Touch_Sensor_delta12 < 250 && Touch_Sensor_delta13 < 250 && Touch_Sensor_delta14 < 250) Touch_Sensor_delta10 < 250 && Touch_Sensor_delta11 < 250 && Touch_Sensor_delta12 < 250 && Touch_Sensor_delta13 < 250 && Touch_Sensor_delta14 < 250)
{
Touch_Sensor_Fault_pad = Touch_NoFault;
fault_count2 = 0;
}
else
{
fault_count2++;
if (fault_count2 > 40)
{
fault_count2 = 40;
}
Touch_Sensor_Fault_pad = Touch_Out_Range;
}
if ( Touch_Sensor_Fault_pad == Touch_NoFault && Touch_Sensor_Fault_key == Touch_NoFault)
{ {
Touch_Sensor_Fault = Touch_NoFault; Touch_Sensor_Fault = Touch_NoFault;
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRTOUCHDFLTSTS, &Touch_Sensor_Fault); InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRTOUCHDFLTSTS, &Touch_Sensor_Fault);
fault_count = 0;
} }
else else
{ {
Touch_Sensor_Fault = Touch_Out_Range; Touch_Sensor_Fault = Touch_Out_Range;
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRTOUCHDFLTSTS, &Touch_Sensor_Fault); InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRTOUCHDFLTSTS, &Touch_Sensor_Fault);
fault_count++;
if (fault_count > 200)
{
fault_count = 0;
//touch_init();
}
} }
/* //抢救策略待定
CurrentDiag_Press_signal = Get_forcedetect_force_value();
if (CurrentDiag_Press_signal < 50)
{
if (Touch_Sensor_delta00 > 10 || Touch_Sensor_delta01 > 10 || Touch_Sensor_delta02 > 10 || Touch_Sensor_delta03 > 10 || Touch_Sensor_delta04 > 10
|| Touch_Sensor_delta05 > 20 || Touch_Sensor_delta06 > 20 || Touch_Sensor_delta07 > 20 || Touch_Sensor_delta08 > 20 || Touch_Sensor_delta09 > 20
|| Touch_Sensor_delta10 > 20 || Touch_Sensor_delta11 > 20 || Touch_Sensor_delta12 > 20|| Touch_Sensor_delta13 > 20 || Touch_Sensor_delta14 > 20)
{
fault_count2++;
if (fault_count2 > 200)
{
fault_count2 = 0;
//touch_init();
}
}
else
{
fault_count2 = 0;
}
}
else
{
fault_count2 = 0;
*/
} }
extern uint8_t Allow_Touch_flag; extern uint8_t Allow_Touch_flag;
static uint8 Vibra_Fault = 0; static uint8 Vibra_Fault = 0;
@ -131,7 +128,7 @@ static void Vibration_Diag_Task(void)
{ {
// AD_data=voltage * 4096/3.3V normal:0-0.01(15) short: 0.15(185)-0.36(448) 0.6(742)-0.7(870) 0.95(1177)-1.05(1305) 1.27(1575)-1.39(1727) open:1.55(1921) - 1.72(2136) // AD_data=voltage * 4096/3.3V normal:0-0.01(15) short: 0.15(185)-0.36(448) 0.6(742)-0.7(870) 0.95(1177)-1.05(1305) 1.27(1575)-1.39(1727) open:1.55(1921) - 1.72(2136)
Vibra_Fault = Vibration_Normal;//Allow_Touch_flag; Vibra_Fault = Get_Speaker_Fault();//Allow_Touch_flag;
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRVIBRATIONFLTSTS, &Vibra_Fault); InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRVIBRATIONFLTSTS, &Vibra_Fault);
/* /*

View File

@ -16,7 +16,7 @@
extern uint8 Force_Sens_Err; extern uint8 Force_Sens_Err;
//extern uint8 Fuction_State ; //extern uint8 Fuction_State ;
//extern uint8 Control_SDZ ; //extern uint8 Control_SDZ ;
extern uint8 Touch_Sensor_Fault,Touch_Sensor_Fault_key,Touch_Sensor_Fault_pad;
extern void Sys_Diag_Detcet_Task(void); extern void Sys_Diag_Detcet_Task(void);

View File

@ -78,10 +78,10 @@ typedef struct{
* Private variables * Private variables
*/ */
const UI_8 NVM_DID_CD_VIN[DLC_DID_CD_VIN] = GAC_VIN_DEFAULT_VALUE; const UI_8 NVM_DID_CD_VIN[DLC_DID_CD_VIN] = GAC_VIN_DEFAULT_VALUE;
const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {0x20,0x24,0x07,0x22}; const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {0x20,0x24,0x08,0x19};
const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','0','7','2','2'}; const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','0','8','1','9'};
const UI_8 NVM_Repair_Shop_Code[DLC_REPAIR_SHOP_CODE] = GAC_ECU_REPAIR_SHOP_CODE; const UI_8 NVM_Repair_Shop_Code[DLC_REPAIR_SHOP_CODE] = GAC_ECU_REPAIR_SHOP_CODE;
const UI_8 NVM_DID_CD_HW_VERSION[DLC_GAC_HW_VERSION] = {'H','W','0','5',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20}; const UI_8 NVM_DID_CD_HW_VERSION[DLC_GAC_HW_VERSION] = {'H','W','0','6',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN]; static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN];
static uint8 RAM_DID_CD_REPROGRAMMING_DATE[DLC_DID_REPROGRAMMING_DATE]; static uint8 RAM_DID_CD_REPROGRAMMING_DATE[DLC_DID_REPROGRAMMING_DATE];
static uint8 RAM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID]; static uint8 RAM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID];

File diff suppressed because it is too large Load Diff

View File

@ -823,5 +823,16 @@ void ResetFlagRxSigDiagnosticFuncAddrReq(void);
void OsekComTask(void); void OsekComTask(void);
void OsekComTxReqFrmSwtrPrivateDHUCanFr01(void); void OsekComTxReqFrmSwtrPrivateDHUCanFr01(void);
void OsekComTxReqFrmSwtrPrivateDHUCanFr02(void); void OsekComTxReqFrmSwtrPrivateDHUCanFr02(void);
void OsekComSetFR09data(uint8_t data[]);
void OsekComSetFR0Adata(uint8_t data[]);
void OsekComSetFR0Bdata(uint8_t data[]);
void OsekComSetFR0Cdata(uint8_t data[]);
#endif #endif

File diff suppressed because it is too large Load Diff

View File

@ -12,6 +12,7 @@ STATE_UINT16 speaker_cycle_u16;
speaker_ctrl_Str speaker_ctrl_buf_str; speaker_ctrl_Str speaker_ctrl_buf_str;
static uint8_t DAC_Initialize_status = 0; static uint8_t DAC_Initialize_status = 0;
static uint8_t DAC_Initialize_RetryCnt = 3; static uint8_t DAC_Initialize_RetryCnt = 3;
static uint8_t speaker_fault_status = 0;
/************************************ /************************************
Get Sw Fifo empty condition Get Sw Fifo empty condition
************************************/ ************************************/
@ -225,7 +226,13 @@ void speaker_MainTask(void)
if(speaker_cycle_u16 >= SA51024_WAVE_MAX_NUM) if(speaker_cycle_u16 >= SA51024_WAVE_MAX_NUM)
{ {
speaker_main_state_str = SPEAKER_STOP; speaker_main_state_str = SPEAKER_STOP;
speaker_fault_status = 0;
} }
if (PORT_PinRead(FAULT_OUT_PIN) == false)
{
speaker_main_state_str = SPEAKER_STOP;
speaker_fault_status = 1;
}
break; break;
default: default:
@ -283,5 +290,8 @@ Speaker_main_e_typ Get_Speaker_Main_State(void)
} }
uint8_t Get_Speaker_Fault(void)
{
return speaker_fault_status;
}

File diff suppressed because it is too large Load Diff

View File

@ -118,63 +118,63 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define NODE_0_PARAMS \ #define NODE_0_PARAMS \
{ \ { \
X_NONE, Y(15), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(15), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_1_PARAMS \ #define NODE_1_PARAMS \
{ \ { \
X_NONE, Y(16), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(16), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_2_PARAMS \ #define NODE_2_PARAMS \
{ \ { \
X_NONE, Y(17), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(17), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_3_PARAMS \ #define NODE_3_PARAMS \
{ \ { \
X_NONE, Y(30), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(30), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_4_PARAMS \ #define NODE_4_PARAMS \
{ \ { \
X_NONE, Y(31), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(31), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_5_PARAMS \ #define NODE_5_PARAMS \
{ \ { \
X_NONE, Y(24), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(24), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_6_PARAMS \ #define NODE_6_PARAMS \
{ \ { \
X_NONE, Y(25), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(25), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_7_PARAMS \ #define NODE_7_PARAMS \
{ \ { \
X_NONE, Y(1), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(1), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_8_PARAMS \ #define NODE_8_PARAMS \
{ \ { \
X_NONE, Y(2), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(2), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_9_PARAMS \ #define NODE_9_PARAMS \
{ \ { \
X_NONE, Y(3), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(3), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_10_PARAMS \ #define NODE_10_PARAMS \
{ \ { \
X_NONE, Y(10), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(10), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_11_PARAMS \ #define NODE_11_PARAMS \
{ \ { \
X_NONE, Y(11), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(11), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_12_PARAMS \ #define NODE_12_PARAMS \
{ \ { \
X_NONE, Y(12), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(12), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_13_PARAMS \ #define NODE_13_PARAMS \
{ \ { \
X_NONE, Y(13), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(13), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
#define NODE_14_PARAMS \ #define NODE_14_PARAMS \
{ \ { \
X_NONE, Y(14), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \ X_NONE, Y(14), 8,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_16 \
} }
/**********************************************************/ /**********************************************************/

View File

@ -22,10 +22,10 @@
// ***************************************************************************** // *****************************************************************************
// ***************************************************************************** // *****************************************************************************
#include <stddef.h> // Defines NULL #include <stddef.h> // Defines NULL
#include <stdbool.h> // Defines true #include <stdbool.h> // Defines true
#include <stdlib.h> // Defines EXIT_FAILURE #include <stdlib.h> // Defines EXIT_FAILURE
#include "definitions.h" // SYS function prototypes #include "definitions.h" // SYS function prototypes
#include "OsekCom/OsekCom.h" #include "OsekCom/OsekCom.h"
#include "Speaker/Speaker.h" #include "Speaker/Speaker.h"
#include "P417_SWTR_App_ert_rtw/P417_SWTR_App.h" #include "P417_SWTR_App_ert_rtw/P417_SWTR_App.h"
@ -42,10 +42,10 @@
#include "calib_public.h" #include "calib_public.h"
#include "smartee.h" #include "smartee.h"
#include "FunctionState.h" #include "FunctionState.h"
#include "SysDiagDetect.h" #include "SysDiagDetect.h"
/* System tick */ /* System tick */
uint32_t SysTick_1ms_Period = 0; uint32_t SysTick_1ms_Period = 0;
uint32_t SysTick_Cur_Counter = 0; uint32_t SysTick_Cur_Counter = 0;
volatile uint32_t SysTick_Elapse = 0; volatile uint32_t SysTick_Elapse = 0;
uint32_t CyclicTskSchM_CurTime = 0; uint32_t CyclicTskSchM_CurTime = 0;
@ -53,21 +53,20 @@ uint8_t Test_frame_On = 0;
uint8_t SDZ_init_flag = 0; uint8_t SDZ_init_flag = 0;
uint8_t SDZ_first_delay = 0; uint8_t SDZ_first_delay = 0;
void OS_TimerCallback(uintptr_t context) void OS_TimerCallback(uintptr_t context)
{ {
SysTick_Elapse++; SysTick_Elapse++;
} }
void CyclicTskSchM_TimerSync (void) void CyclicTskSchM_TimerSync(void)
{ {
CyclicTskSchM_CurTime+= 1; CyclicTskSchM_CurTime += 1;
while (SysTick_Elapse < CyclicTskSchM_CurTime) while (SysTick_Elapse < CyclicTskSchM_CurTime)
{ {
/* TimerSync */ /* TimerSync */
} }
CyclicTskSchM_CurTime = SysTick_Elapse; CyclicTskSchM_CurTime = SysTick_Elapse;
} }
/* PWM */ /* PWM */
@ -76,48 +75,48 @@ uint32_t duty = 7999;
uint32_t period = 0; uint32_t period = 0;
/* ADC1 */ /* ADC1 */
#define ADC1_CH_AD_LDO_SNS 0 #define ADC1_CH_AD_LDO_SNS 0
#define ADC1_CH_LD_OUT_SNS 1 #define ADC1_CH_LD_OUT_SNS 1
#define ADC1_CH_MAX 2 #define ADC1_CH_MAX 2
uint8_t adc_ch_sel = 0; uint8_t adc_ch_sel = 0;
uint16_t adc_result = 0; uint16_t adc_result = 0;
uint16_t adc[ADC1_CH_MAX] = {0}; uint16_t adc[ADC1_CH_MAX] = {0};
void ADC1_ConversionCallback (ADC_STATUS status, uintptr_t context) void ADC1_ConversionCallback(ADC_STATUS status, uintptr_t context)
{ {
if(status == ADC_STATUS_RESRDY) { if (status == ADC_STATUS_RESRDY)
{
adc_result = ADC1_ConversionResultGet(); adc_result = ADC1_ConversionResultGet();
//adc[adc_ch_sel - 1] = adc_result & 0xFFF; // adc[adc_ch_sel - 1] = adc_result & 0xFFF;
adc[adc_ch_sel] = adc_result & 0xFFF; adc[adc_ch_sel] = adc_result & 0xFFF;
switch (adc_ch_sel) switch (adc_ch_sel)
{ {
case ADC1_CH_AD_LDO_SNS: case ADC1_CH_AD_LDO_SNS:
ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND); ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND);
adc_ch_sel= ADC1_CH_LD_OUT_SNS; adc_ch_sel = ADC1_CH_LD_OUT_SNS;
ADC1_ConversionStart(); ADC1_ConversionStart();
break; break;
case ADC1_CH_LD_OUT_SNS: case ADC1_CH_LD_OUT_SNS:
ADC1_ChannelSelect(ADC_POSINPUT_AIN7, ADC_NEGINPUT_GND); ADC1_ChannelSelect(ADC_POSINPUT_AIN7, ADC_NEGINPUT_GND);
adc_ch_sel= ADC1_CH_AD_LDO_SNS; adc_ch_sel = ADC1_CH_AD_LDO_SNS;
ADC1_Disable(); ADC1_Disable();
break; break;
default: default:
break; break;
} }
//adc_ch_sel++; // adc_ch_sel++;
//if (adc_ch_sel > ADC1_CH_MAX) { // if (adc_ch_sel > ADC1_CH_MAX) {
// adc_ch_sel = ADC1_CH_AD_LDO_SNS + 1; // adc_ch_sel = ADC1_CH_AD_LDO_SNS + 1;
//} // }
ADC1_ConversionStart(); ADC1_ConversionStart();
} }
} }
/* CAN1 */ /* CAN1 */
bool Can1BusErrFlag = false; bool Can1BusErrFlag = false;
uint8_t Can1MessageRAM[CAN1_MESSAGE_RAM_CONFIG_SIZE] __attribute__((aligned (32))); uint8_t Can1MessageRAM[CAN1_MESSAGE_RAM_CONFIG_SIZE] __attribute__((aligned(32)));
uint32_t Received_id[8] = {0}; uint32_t Received_id[8] = {0};
typedef struct typedef struct
{ {
@ -130,7 +129,7 @@ typedef struct
CAN_Received_Buffer Received_buf[8] = {0}; CAN_Received_Buffer Received_buf[8] = {0};
#define WRITE_ID(id) (id << 18) #define WRITE_ID(id) (id << 18)
#define READ_ID(id) (id >> 18) #define READ_ID(id) (id >> 18)
static uint8_t canTxBuffer[CAN1_TX_FIFO_BUFFER_SIZE]; static uint8_t canTxBuffer[CAN1_TX_FIFO_BUFFER_SIZE];
static uint8_t canRxBuffer[CAN1_RX_FIFO0_SIZE]; static uint8_t canRxBuffer[CAN1_RX_FIFO0_SIZE];
@ -139,21 +138,21 @@ CAN_TX_BUFFER *CanTxBuffer = NULL;
uint32_t CanBufQueryIdTp(void) uint32_t CanBufQueryIdTp(void)
{ {
return Received_buf[0].id; return Received_buf[0].id;
} }
uint32_t CanBufQueryIdTp_Tx(void) uint32_t CanBufQueryIdTp_Tx(void)
{ {
return CanTxBuffer->id; return CanTxBuffer->id;
} }
uint8_t CanBufQueryDataByte(uint8_t hdl, uint8_t index) uint8_t CanBufQueryDataByte(uint8_t hdl, uint8_t index)
{ {
uint8_t byte; uint8_t byte;
byte = (uint8_t)Received_buf[0].data[index]; byte = (uint8_t)Received_buf[0].data[index];
return byte; return byte;
} }
void CAN_Rx_FIFO0_CALLBACK(uint8_t numberOfMessage, uintptr_t context) void CAN_Rx_FIFO0_CALLBACK(uint8_t numberOfMessage, uintptr_t context)
@ -161,7 +160,7 @@ void CAN_Rx_FIFO0_CALLBACK(uint8_t numberOfMessage, uintptr_t context)
uint8_t MessageNumer = 0; uint8_t MessageNumer = 0;
CAN1_MessageReceiveFifo(CAN_RX_FIFO_0, numberOfMessage, (CAN_RX_BUFFER *)canRxBuffer); CAN1_MessageReceiveFifo(CAN_RX_FIFO_0, numberOfMessage, (CAN_RX_BUFFER *)canRxBuffer);
CanRxBuf_t = (CAN_RX_BUFFER *)canRxBuffer; CanRxBuf_t = (CAN_RX_BUFFER *)canRxBuffer;
for (;MessageNumer < numberOfMessage; MessageNumer++) for (; MessageNumer < numberOfMessage; MessageNumer++)
{ {
Received_buf[MessageNumer].id = READ_ID(CanRxBuf_t[MessageNumer].id); Received_buf[MessageNumer].id = READ_ID(CanRxBuf_t[MessageNumer].id);
memcpy(Received_buf[MessageNumer].data, CanRxBuf_t[MessageNumer].data, 8); memcpy(Received_buf[MessageNumer].data, CanRxBuf_t[MessageNumer].data, 8);
@ -171,7 +170,7 @@ void CAN_Rx_FIFO0_CALLBACK(uint8_t numberOfMessage, uintptr_t context)
void CAN_Tx_FIFO0_CALLBACK(uintptr_t context) void CAN_Tx_FIFO0_CALLBACK(uintptr_t context)
{ {
OsekComTxNotifCallbackSWTR(0); OsekComTxNotifCallbackSWTR(0);
} }
/* CAN handlers definition */ /* CAN handlers definition */
@ -183,17 +182,18 @@ void CanTx(t_can_handler can_handler, bool notif, uint32_t idtp, uint16_t len, t
CanTxBuffer = (CAN_TX_BUFFER *)canTxBuffer; CanTxBuffer = (CAN_TX_BUFFER *)canTxBuffer;
CanTxBuffer->id = WRITE_ID(idtp); CanTxBuffer->id = WRITE_ID(idtp);
CanTxBuffer->dlc = len; CanTxBuffer->dlc = len;
for (loop_count = 0; loop_count < len; loop_count++){ for (loop_count = 0; loop_count < len; loop_count++)
{
CanTxBuffer->data[loop_count] = can_data[loop_count]; CanTxBuffer->data[loop_count] = can_data[loop_count];
} }
if (CAN1_MessageTransmitFifo(1, CanTxBuffer) == true) if (CAN1_MessageTransmitFifo(1, CanTxBuffer) == true)
{ {
; ;
} }
else else
{ {
; ;
} }
} }
void IhuPrivateDHUCanFr01_CALLBACK(void) void IhuPrivateDHUCanFr01_CALLBACK(void)
{ {
@ -214,23 +214,23 @@ static uint32_t status = 0;
uint8_t g_SBC_STATUS[8] = {0}; uint8_t g_SBC_STATUS[8] = {0};
void GetResetSource(void) void GetResetSource(void)
{ {
g_SBC_STATUS[0] = (uint8_t)sbc_read_reg(SBC_SUP_STAT_2); g_SBC_STATUS[0] = (uint8_t)sbc_read_reg(SBC_SUP_STAT_2);
g_SBC_STATUS[1] = (uint8_t)sbc_read_reg(SBC_SUP_STAT_1); g_SBC_STATUS[1] = (uint8_t)sbc_read_reg(SBC_SUP_STAT_1);
g_SBC_STATUS[2] = (uint8_t)sbc_read_reg(SBC_DEV_STAT); g_SBC_STATUS[2] = (uint8_t)sbc_read_reg(SBC_DEV_STAT);
g_SBC_STATUS[3] = RSTC_REGS->RSTC_RCAUSE; g_SBC_STATUS[3] = RSTC_REGS->RSTC_RCAUSE;
g_SBC_STATUS[4] = RSTC_REGS->RSTC_BKUPEXIT; g_SBC_STATUS[4] = RSTC_REGS->RSTC_BKUPEXIT;
g_SBC_STATUS[5] = 0x00; g_SBC_STATUS[5] = 0x00;
g_SBC_STATUS[6] = 0x00; g_SBC_STATUS[6] = 0x00;
g_SBC_STATUS[7] = 0x00; g_SBC_STATUS[7] = 0x00;
CanTx(0,true,0x421,8,g_SBC_STATUS); CanTx(0, true, 0x421, 8, g_SBC_STATUS);
} }
int main ( void ) int main(void)
{ {
uint32_t loop_counter = 0; uint32_t loop_counter = 0;
/* Initialize all modules */ /* Initialize all modules */
SYS_Initialize ( NULL ); SYS_Initialize(NULL);
//Tle9263_Init(); // Tle9263_Init();
Calib_Init(); Calib_Init();
WDT_TimeoutPeriodSet(3); WDT_TimeoutPeriodSet(3);
SysTick_1ms_Period = SYSTICK_TimerPeriodGet() + 1; SysTick_1ms_Period = SYSTICK_TimerPeriodGet() + 1;
@ -248,115 +248,87 @@ int main ( void )
speaker_Init(); speaker_Init();
forcedetect_Init(); forcedetect_Init();
TouchPanel_init(); TouchPanel_init();
Tle9263_Init(); Tle9263_Init();
ADC1_Enable(); ADC1_Enable();
ADC1_CallbackRegister(ADC1_ConversionCallback, 0); ADC1_CallbackRegister(ADC1_ConversionCallback, 0);
ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND); ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND);
//adc_ch_sel++; // adc_ch_sel++;
ADC1_ConversionStart(); ADC1_ConversionStart();
P417_SWTR_App_initialize(); P417_SWTR_App_initialize();
WDT_Enable(); WDT_Enable();
InicialitzaTPTask(ISO15765_2_REPROGONCAN_HANDLER); InicialitzaTPTask(ISO15765_2_REPROGONCAN_HANDLER);
InicialitzaIso15765_3Task(); InicialitzaIso15765_3Task();
Dem_Init(); Dem_Init();
UDS_DID_initNVM(); UDS_DID_initNVM();
PORT_PinWrite(PORT_PIN_PB02,1);//battery voltage detection on PORT_PinWrite(PORT_PIN_PB02, 1); // battery voltage detection on
PORT_PinWrite(PORT_PIN_PA13,0);/*init turn off SDZ*/ PORT_PinWrite(PORT_PIN_PA13, 0); /*init turn off SDZ*/
SmartEE_Read(0x783, &Test_frame_On , 1); SmartEE_Read(0x783, &Test_frame_On, 1);
if (Test_frame_On > 1) if (Test_frame_On > 1)
{ {
Test_frame_On = 1; Test_frame_On = 1;
} }
GetResetSource(); GetResetSource();
Fuction_State = Function_State_A; Fuction_State = Function_State_A;
while ( true ) while (true)
{ {
/* Maintain state machines of all polled MPLAB Harmony modules. */ /* Maintain state machines of all polled MPLAB Harmony modules. */
SYS_Tasks ( ); SYS_Tasks();
//ADC1_ChannelSelect(ADC_POSINPUT_AIN6, ADC_NEGINPUT_GND);
//ADC1_ConversionStart();
if (!(loop_counter % 2)) if (!(loop_counter % 2))
{ {
//(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, duty); //(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, duty);
OsekComTask(); OsekComTask();
Tle9263_MainTask(); Tle9263_MainTask();
/* call touch process function */ /* call touch process function */
if(Fuction_State == Function_State_A) if (Fuction_State == Function_State_A)
{ {
TouchPanel_MainFunction(); TouchPanel_MainFunction();
speaker_MainTask(); speaker_MainTask();
forcedetect_MainTask(); forcedetect_MainTask();
RTE_Set_All_Test_Value(); RTE_Set_All_Test_Value();
} }
else else
{ {
//(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, 0);//Turn off LED //(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, 0);//Turn off LED
} }
//TCC0_PWM24bitDutySet(TCC0_CHANNEL0,6999); // TCC0_PWM24bitDutySet(TCC0_CHANNEL0,6999);
if(Fuction_State != Function_State_C) if (Fuction_State != Function_State_C)
{ {
TPTask(ISO15765_2_REPROGONCAN_HANDLER); TPTask(ISO15765_2_REPROGONCAN_HANDLER);
Iso15765_3Task(); Iso15765_3Task();
Dem_MainFunction(); Dem_MainFunction();
} }
Calib_Task(); Calib_Task();
//SBC VCC2 always on Setting // SBC VCC2 always on Setting
sbc_write_reg(SBC_M_S_CTRL,0x18,0); sbc_write_reg(SBC_M_S_CTRL, 0x18, 0);
} }
if (!(loop_counter % 5)) if (!(loop_counter % 5))
{ {
FunctionState_Task(); FunctionState_Task();
Sys_Diag_Detcet_Task(); Sys_Diag_Detcet_Task();
} }
/* Check CAN Status */ /* Check CAN Status */
status = CAN1_ErrorGet(); status = CAN1_ErrorGet();
#if 0
if (Can1BusErrFlag == false)
{
WDT_Clear();
}
else
{
Can1BusErrFlag = false;
NVIC_SystemReset();
while(1);
}
#endif
WDT_Clear(); WDT_Clear();
//if(Fuction_State == Function_State_A) P417_SWTR_App_step();
//{
P417_SWTR_App_step();
// }
CyclicTskSchM_TimerSync(); CyclicTskSchM_TimerSync();
loop_counter++; loop_counter++;
} }
/* Execution should not come here during normal operation */ /* Execution should not come here during normal operation */
return ( EXIT_FAILURE ); return (EXIT_FAILURE);
} }
/******************************************************************************* /*******************************************************************************
End of File End of File
*/ */