diff --git a/firmware/p417_SWTR.X/nbproject/Makefile-genesis.properties b/firmware/p417_SWTR.X/nbproject/Makefile-genesis.properties
index caee351..dcd9693 100644
--- a/firmware/p417_SWTR.X/nbproject/Makefile-genesis.properties
+++ b/firmware/p417_SWTR.X/nbproject/Makefile-genesis.properties
@@ -1,5 +1,5 @@
#
-#Fri Nov 15 15:26:57 CST 2024
+#Mon Dec 02 16:25:50 CST 2024
mcal.com-microchip-mplab-nbide-toolchain-xc32-XC32LanguageToolchain.md5=1eaf555a844840d91945cb14109201c3
conf.ids=mcal
mcal.languagetoolchain.version=4.10
diff --git a/firmware/p417_SWTR.X/nbproject/private/private.xml b/firmware/p417_SWTR.X/nbproject/private/private.xml
index 361468e..5c68aa3 100644
--- a/firmware/p417_SWTR.X/nbproject/private/private.xml
+++ b/firmware/p417_SWTR.X/nbproject/private/private.xml
@@ -3,9 +3,8 @@
- file:/F:/FCB_project/P417/CODE/20240727HW06/P417_SWTR/firmware/src/main.c
file:/F:/FCB_project/P417/CODE/20240727HW06/P417_SWTR/firmware/src/TouchPanel/TouchPanel.c
- file:/F:/FCB_project/P417/CODE/20240727HW06/P417_SWTR/firmware/src/DiagnosticR/Sys_Diag_Detect/SysDiagDetect.c
+ file:/F:/FCB_project/P417/CODE/20240727HW06/P417_SWTR/firmware/src/main.c
diff --git a/firmware/src/DiagnosticR/UDS/UDS_DIDNvm.c b/firmware/src/DiagnosticR/UDS/UDS_DIDNvm.c
index 32b9a3c..15c9f31 100644
--- a/firmware/src/DiagnosticR/UDS/UDS_DIDNvm.c
+++ b/firmware/src/DiagnosticR/UDS/UDS_DIDNvm.c
@@ -78,8 +78,8 @@ typedef struct{
* Private variables
*/
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,0x10,0x19};
-const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','1','0','1','9'};
+const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {0x20,0x24,0x12,0x02};
+const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','1','2','0','2'};
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','6',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN];
diff --git a/firmware/src/RTE/RTE.c b/firmware/src/RTE/RTE.c
index 803e7eb..22b10ae 100644
--- a/firmware/src/RTE/RTE.c
+++ b/firmware/src/RTE/RTE.c
@@ -577,6 +577,54 @@ uint8_t RTE_Get_TouchBoard_XY_Sts(void) // Not active,Touch,Touch and Press,inva
return XY_Sts;
}
+//统计所有触发的通道数量
+uint8_t GetActiveChNum (uint16_t chdata[],uint16_t thdata[],uint8_t num)
+{
+ uint8_t i,count;
+ count = 0;
+ for (i = 0; i < num; i++)
+ {
+ if (chdata[i] > thdata[i])
+ {
+ count++;
+ }
+ }
+ return count;
+}
+
+//统计连续触发的通道数量
+uint8_t GetContinuousChNum(uint16_t chdata[],uint16_t thdata[],uint8_t num)
+{
+ uint8_t i,count,index;
+ count = 0;
+ index = 0;
+ for (i = 0; i < num; i++)
+ {
+ if (chdata[i] > thdata[i])
+ {
+ //找到第一个触发的通道
+ index = i;
+ break;
+ }
+ }
+ if (i == num)
+ {
+ //没有触发的通道
+ return count;
+ }
+
+ for (i = index; i < num; i++)
+ {
+ if (chdata[i] <= thdata[i])
+ {
+ //找到第一个触发的通道之后第一个不触发的通道
+ break;
+ }
+ }
+ count = i - index;
+ return count;
+}
+
#if 1
uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
{
@@ -611,8 +659,9 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
th_y[3] = qtlib_key_configs_set1[11].channel_threshold;
th_y[4] = qtlib_key_configs_set1[10].channel_threshold;
-
-
+ Two_Finger_Y_count = GetActiveChNum(Two_Finger_Y_data,th_y,5U);
+ Y_count = GetContinuousChNum(Two_Finger_Y_data,th_y,5U);
+ /*
Two_Finger_Y_count = 0;
for (i = 0; i < 5; i++)
{
@@ -634,7 +683,11 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
else
Y_count++;
}
+ */
+ Two_Finger_X_count = GetActiveChNum(Two_Finger_X_data,th_x,5U);
+ X_count = GetContinuousChNum(Two_Finger_X_data,th_x,5U);
+ /*
Two_Finger_X_count = 0;
for (m = 0; m < 5; m++)
{
@@ -655,6 +708,8 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
else
X_count++;
}
+ */
+
// 触发的通道数量 //连续触发的通道数量
if ((Two_Finger_Y_count > 4 && Two_Finger_X_data[0]>th_x[0]) || Y_count != Two_Finger_Y_count || Two_Finger_X_count > 4 || X_count != Two_Finger_X_count)
diff --git a/firmware/src/TLE9263/SBC_TLE926x.h b/firmware/src/TLE9263/SBC_TLE926x.h
index 41b273f..b06d8b1 100644
--- a/firmware/src/TLE9263/SBC_TLE926x.h
+++ b/firmware/src/TLE9263/SBC_TLE926x.h
@@ -36,15 +36,15 @@
#define CW_BUS_CTRL_2 (0x0) /*decimal 0*/
-#define CW_GPIO_CTRL (0x0) /*decimal 0*/
+#define CW_GPIO_CTRL (0x24) /*decimal 36*/
#define CW_HS_CTRL1 (0x0) /*decimal 0*/
#define CW_HS_CTRL2 (0x0) /*decimal 0*/
-#define CW_HW_CTRL (0x80) /*decimal 128*/
+#define CW_HW_CTRL (0x9) /*decimal 9*/
-#define CW_M_S_CTRL (0x18) /*decimal 8*/
+#define CW_M_S_CTRL (0x1C) /*decimal 28*/
#define CW_PWM1_CTRL (0x0) /*decimal 0*/
@@ -92,15 +92,15 @@
#define CW_TIMER2_CTRL (0x0) /*decimal 0*/
-#define CW_WD_CTRL (0x4) /*decimal 4*/
+#define CW_WD_CTRL (0x84) /*decimal 132*/
#define CW_WK_CTRL_1 (0x0) /*decimal 0*/
-#define CW_WK_CTRL_2 (0x7) /*decimal 7*/
+#define CW_WK_CTRL_2 (0x0) /*decimal 0*/
#define CW_WK_FLT_CTRL (0x0) /*decimal 0*/
-#define CW_WK_PUPD_CTRL (0x3F) /*decimal 63*/
+#define CW_WK_PUPD_CTRL (0x0) /*decimal 0*/
#define LED_EXTENDED_ID (0x1) /*decimal 1*/
@@ -120,6 +120,6 @@
#define UI_SWK_MASK_IDx_CTRL 0x00000000
-#define UI_VARIANT (0x3) /*decimal 3*/
+#define UI_VARIANT (0x5) /*decimal 5*/
#endif /* SBC_TLE926X_H */
diff --git a/firmware/src/TLE9263/TLE926x.c b/firmware/src/TLE9263/TLE926x.c
index 4f391fe..e223c1e 100644
--- a/firmware/src/TLE9263/TLE926x.c
+++ b/firmware/src/TLE9263/TLE926x.c
@@ -206,11 +206,14 @@ SBC_ErrorCode sbc_init(void) {
/* Describes initialization sequence.
init Sequence containing {reg_address, reg_value}*/
- uint8_t initSequence[4][2] = {
+ uint8_t initSequence[8][2] = {
{SBC_WD_CTRL, WD_CTRL},//0x04 TimeOut; 200ms period
{SBC_M_S_CTRL, CW_M_S_CTRL},//0x18 SBC normal;vcc3off;vcc2 on in normal;
{SBC_BUS_CTRL_1, CW_BUS_CTRL_1},//0x03 lin off; can normal
-
+ {SBC_WK_CTRL_2, CW_WK_CTRL_2},
+ {SBC_HW_CTRL, CW_HW_CTRL},
+ {SBC_GPIO_CTRL, CW_GPIO_CTRL},
+ {SBC_WK_PUPD_CTRL, CW_WK_PUPD_CTRL},
/* End Configuration */
{0x00U, 0x00U}
};
diff --git a/firmware/src/TLE9263/TLE926x_Main.c b/firmware/src/TLE9263/TLE926x_Main.c
index 2e450e8..665ee72 100644
--- a/firmware/src/TLE9263/TLE926x_Main.c
+++ b/firmware/src/TLE9263/TLE926x_Main.c
@@ -39,7 +39,6 @@ void Tle9263_MainTask(void) {
{
return;
}
-
if (timeref ++ > 5) {
sbc_wd_trigger();
timeref = 0;
diff --git a/firmware/src/TLE9263/sbc_tle9263.icwp b/firmware/src/TLE9263/sbc_tle9263.icwp
index 8c20a27..39a9276 100644
--- a/firmware/src/TLE9263/sbc_tle9263.icwp
+++ b/firmware/src/TLE9263/sbc_tle9263.icwp
@@ -1,24 +1,14 @@
- 938a5187cdcc759f78b6bae262f689a50c384e539a95618defe57f554fa7fafd
+ b31f5011f3959a9e7cc2c9ca70f9a9d697b17587a54185c423e628478807656e
TLE926x_Lib.xml
V0.0.1
-
- CW.M_S_CTRL[2]
- 0
- 0
-
CW.M_S_CTRL[1:0]
0
0
-
- CW.HW_CTRL[3]
- 0
- 0
-
CW.HW_CTRL[1]
0
@@ -34,21 +24,11 @@
0
0
-
- CW.BUS_CTRL_1[5]
- 1
- 1
-
CW.BUS_CTRL_1[6]
0
0
-
- CW.BUS_CTRL_1[7]
- 0
- 0
-
MATH.EN_PN
0
@@ -79,11 +59,6 @@
0
0
-
- CW.SWK_BTL2_CTRL[5:0]
- 0
- 0
-
CW.SWK_ID0_CTRL[0]
0
@@ -114,16 +89,6 @@
0x00000000
0x00000000
-
- CW.GPIO_CTRL[2:0]
- 0
- 0
-
-
- CW.GPIO_CTRL[5:3]
- 0
- 0
-
CW.GPIO_CTRL[7:6]
0
@@ -134,11 +99,6 @@
0
0
-
- CW.HW_CTRL[0]
- 0
- 0
-
CW.HW_CTRL[5]
0
@@ -164,21 +124,6 @@
0
0
-
- CW.WK_CTRL_2[0]
- 1
- 1
-
-
- CW.WK_CTRL_2[1]
- 1
- 1
-
-
- CW.WK_CTRL_2[2]
- 1
- 1
-
CW.WK_FLT_CTRL[1:0]
0
@@ -279,50 +224,105 @@
0
0
-
- UI.VARIANT
- 3
- 3
-
-
- CW.M_S_CTRL[4:3]
- 1
- 1
-
CW.BUS_CTRL_1[2:0]
3
3
-
- CW.BUS_CTRL_1[4:3]
- 3
- 3
-
-
- CW.WD_CTRL[2:0]
- 6
- 6
-
CW.HW_CTRL[7]
1
+ 0
+
+
+ CW.BUS_CTRL_1[4:3]
+ 0
+ 0
+
+
+ UI.VARIANT
+ 5
+ 5
+
+
+ CW.GPIO_CTRL[2:0]
+ 4
+ 4
+
+
+ CW.GPIO_CTRL[5:3]
+ 4
+ 4
+
+
+ CW.M_S_CTRL[2]
+ 1
+ 1
+
+
+ CW.M_S_CTRL[4:3]
+ 3
+ 3
+
+
+ CW.HW_CTRL[3]
+ 1
+ 1
+
+
+ CW.BUS_CTRL_1[5]
+ 0
+ 0
+
+
+ CW.BUS_CTRL_1[7]
+ 1
+ 1
+
+
+ CW.SWK_BTL2_CTRL[5:0]
+ 52
+ 52
+
+
+ CW.HW_CTRL[0]
+ 1
1
+
+ CW.WD_CTRL[2:0]
+ 4
+ 4
+
+
+ CW.WK_CTRL_2[0]
+ 0
+ 0
+
+
+ CW.WK_CTRL_2[1]
+ 0
+ 0
+
+
+ CW.WK_CTRL_2[2]
+ 0
+ 0
+
CW.WK_PUPD_CTRL[1:0]
- 3
- 3
+ 0
+ 0
CW.WK_PUPD_CTRL[3:2]
- 3
- 3
+ 0
+ 0
CW.WK_PUPD_CTRL[5:4]
- 3
- 3
+ 0
+ 0
\ No newline at end of file
diff --git a/firmware/src/TouchPanel/TouchPanel.c b/firmware/src/TouchPanel/TouchPanel.c
index 9c57c80..fa1dee1 100644
--- a/firmware/src/TouchPanel/TouchPanel.c
+++ b/firmware/src/TouchPanel/TouchPanel.c
@@ -534,7 +534,7 @@ PanelPress_LevelType TouchPanel_PressLevelRead(void)
boolean TouchSurface_is_TouchActive(void)
{
boolean ret = FALSE;
- if (TouchPanel_SurfaceStatus & TOUCH_ACTIVE && CurrentPosition>0 && CurrentPosition<9)
+ if ((TouchPanel_SurfaceStatus & TOUCH_ACTIVE) && (CurrentPosition>0 && CurrentPosition<9))
{
ret = TRUE;
}
@@ -557,7 +557,7 @@ boolean TouchButton_is_TouchActive(Buttons_ChType BtId)
Buttons_SignalType TouchSurface_XY_StsRead(void)
{
Buttons_SignalType XY_Sts = BUTTON_RELEASE;
- if (TouchPanel_SurfaceStatus & TOUCH_ACTIVE && CurrentPosition>0 && CurrentPosition<9)
+ if ((TouchPanel_SurfaceStatus & TOUCH_ACTIVE) && (CurrentPosition>0 && CurrentPosition<9))
{
switch (TouchPanel_PressLevel)
@@ -589,8 +589,8 @@ static PanelPress_LevelType TouchPanel_PressCheck(void)
// static uint16 ForceMcount = 0;
// static uint16 ForceLcount = 0;
- static uint16 tempForcePress = 0xffff;
- static uint16 tempForceRelease = 0xffff;
+ uint16 tempForcePress = 0xffff;
+ uint16 tempForceRelease = 0xffff;
uint16 RawData = 0;
uint16 temp_RawData = 0;
diff --git a/firmware/src/main.c b/firmware/src/main.c
index 899195b..ad4f2ba 100644
--- a/firmware/src/main.c
+++ b/firmware/src/main.c
@@ -154,8 +154,8 @@ uint8_t CanBufQueryDataByte(uint8_t hdl, uint8_t index)
void CAN_Rx_FIFO0_CALLBACK(uint8_t numberOfMessage, uintptr_t context)
{
uint8_t MessageNumer = 0;
- CAN1_MessageReceiveFifo(CAN_RX_FIFO_0, numberOfMessage, (CAN_RX_BUFFER *)canRxBuffer);
- CanRxBuf_t = (CAN_RX_BUFFER *)canRxBuffer;
+ CAN1_MessageReceiveFifo(CAN_RX_FIFO_0, numberOfMessage, (CAN_RX_BUFFER *)(uintptr_t)canRxBuffer);
+ CanRxBuf_t = (CAN_RX_BUFFER *)(uintptr_t)canRxBuffer;
for (; MessageNumer < numberOfMessage; MessageNumer++)
{
Received_buf[MessageNumer].id = READ_ID(CanRxBuf_t[MessageNumer].id);
@@ -175,7 +175,7 @@ void CanTx(t_can_handler can_handler, bool notif, uint32_t idtp, uint16_t len, t
uint8_t loop_count = 0;
memset(canTxBuffer, 0x00, CAN1_TX_FIFO_BUFFER_ELEMENT_SIZE);
- CanTxBuffer = (CAN_TX_BUFFER *)canTxBuffer;
+ CanTxBuffer = (CAN_TX_BUFFER *)(uintptr_t)canTxBuffer;
CanTxBuffer->id = WRITE_ID(idtp);
CanTxBuffer->dlc = len;
for (loop_count = 0; loop_count < len; loop_count++)