SW0303_20240722

This commit is contained in:
sunbeam 2024-07-26 14:38:26 +08:00
parent 06081cf3a2
commit ed84735e60
11 changed files with 549 additions and 847 deletions

View File

@ -1,5 +1,6 @@
{
"files.associations": {
"rte.h": "c"
"rte.h": "c",
"sysdiagdetect.h": "c"
}
}

File diff suppressed because it is too large Load Diff

View File

@ -2,8 +2,6 @@
<project-private xmlns="http://www.netbeans.org/ns/project-private/1">
<editor-bookmarks xmlns="http://www.netbeans.org/ns/editor-bookmarks/2" lastBookmarkId="0"/>
<open-files xmlns="http://www.netbeans.org/ns/projectui-open-files/2">
<group>
<file>file:/F:/work/P417/20240702/P417_SWTL/firmware/src/main.c</file>
</group>
<group/>
</open-files>
</project-private>

View File

@ -80,7 +80,7 @@ static uint8 Touch_Sensor_Fault = 0;
static void Touch_Sensor_Diag_Task(void)
{
static uint16_t fault_count = 0, fault_count2 = 0;
uint16 CurrentDiag_Press_signal;
//uint16 CurrentDiag_Press_signal;
if (Touch_Sensor_delta00 < 200 && Touch_Sensor_delta01 < 200 && Touch_Sensor_delta02 < 200 && Touch_Sensor_delta13 < 200 && Touch_Sensor_delta14 < 200 && Touch_Sensor_delta15 < 200
&& Touch_Sensor_delta03 < 300 && Touch_Sensor_delta04 < 300 && Touch_Sensor_delta05 < 300 && Touch_Sensor_delta06 < 300 && Touch_Sensor_delta07 < 300
&& Touch_Sensor_delta08 < 300 && Touch_Sensor_delta09 < 300 && Touch_Sensor_delta10 < 300 && Touch_Sensor_delta11 < 300 && Touch_Sensor_delta12 < 300)
@ -127,12 +127,13 @@ static void Touch_Sensor_Diag_Task(void)
*/
}
extern uint8_t Allow_Touch_flag;//todo
static uint8 Vibra_Fault = 0;
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)
Vibra_Fault = Vibration_Normal;
Vibra_Fault = Vibration_Normal;//todo Allow_Touch_flag
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTLVIBRATIONFLTSTS, &Vibra_Fault);
/*
if(LD_AD_Val>=0 && LD_AD_Val<=15) //normal

View File

@ -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,0x07,0x04};
const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','0','7','0','4'};
const UI_8 NVM_Reprogramming_Date_App[DLC_DID_REPROGRAMMING_DATE] = {0x20,0x24,0x07,0x22};
const UI_8 NVM_DID_CD_SUPPLIER_ID[DLC_SYSTEM_SUPPLIER_ID] = {'2','4','0','7','2','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','5',0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20,0x20};
static uint8 RAM_DID_CD_VIN[DLC_DID_CD_VIN];

View File

@ -1,5 +1,6 @@
#include "FunctionState.h"
#include "plib_port.h"
#include "plib_port.h"
#include "plib_adc1.h"
extern uint16 adc[2] ;
uint8 Fuction_State = 1 ;
@ -14,6 +15,16 @@ void FunctionState_Task(void)
static uint16 Into_B_count = 0;
static uint16 Into_C_count = 0;
static uint8_t adcResetFlag = 0;
adcResetFlag = !adcResetFlag;
if (adcResetFlag == 0)
{
ADC1_Initialize();
return;
}
LD_AD_Val = adc[1];
@ -25,7 +36,7 @@ void FunctionState_Task(void)
if((adc[0]>581 && adc[0]<862) || (adc[0]>1788 && adc[0]<2014))
{
Into_B_count++;
if(Into_B_count >= 800) //4000ms
if(Into_B_count >= 400) //4000ms
{
Fuction_State = Function_State_B;
}
@ -33,7 +44,7 @@ void FunctionState_Task(void)
else if(adc[0]<581 || adc[0]>2014) //A switch to C
{
Into_C_count++;
if(Into_C_count >= 200) //1000ms
if(Into_C_count >= 100) //1000ms
{
Fuction_State = Function_State_C;
}
@ -48,7 +59,7 @@ void FunctionState_Task(void)
Into_A_count++;
if(Into_A_count >= 100) //500ms
if(Into_A_count >= 50) //500ms
{
Fuction_State = Function_State_A;
}
@ -56,7 +67,7 @@ void FunctionState_Task(void)
else if(adc[0]<581 || adc[0]>2014) //B switch to C
{
Into_C_count++;
if(Into_C_count >= 200) //1000ms
if(Into_C_count >= 100) //1000ms
{
Fuction_State = Function_State_C;
}
@ -69,7 +80,7 @@ void FunctionState_Task(void)
if((adc[0]>614 && adc[0]<897) || (adc[0]>1754 && adc[0]<1979)) //C switch to B
{
Into_B_count++;
if(Into_B_count >= 800) //4000ms
if(Into_B_count >= 400) //4000ms
{
Fuction_State = Function_State_B;
}
@ -79,7 +90,7 @@ void FunctionState_Task(void)
{
Into_A_count++;
if(Into_A_count >= 100) //500ms
if(Into_A_count >= 50) //500ms
{
Fuction_State = Function_State_A;
}

View File

@ -53,8 +53,8 @@
#define Cncl_Btn_E2EID ((uint16_t)(0x2136)) // in CAN ID 0x305
uint8_t g_speeker_event = 0x00;
extern uint8 CurrentPosition;
extern uint8_t PressState;
uint8_t touch_reset2times_flag = 0;
uint8_t Two_Finger_Y_count = 0;
uint8_t Two_Finger_X_count = 0;
uint8_t X_count = 0;
@ -185,22 +185,11 @@ uint8_t RTE_Get_TouchBoard_Up_Sts(void)
Signal = TouchPanel_BtnSignalRead(BTN_UP);
}
// if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
// {
// Signal = BUTTON_RELEASE;
// }else{
// Signal = TouchPanel_BtnSignalRead(BTN_UP);
// }
if(Allow_Touch_flag==0)
{
Signal = 0;
}
if (PressState == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
@ -216,22 +205,11 @@ uint8_t RTE_Get_TouchBoard_Down_Sts(void)
Signal = TouchPanel_BtnSignalRead(BTN_DOWN);
}
// if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
// {
// Signal = BUTTON_RELEASE;
// }else{
// Signal = TouchPanel_BtnSignalRead(BTN_DOWN);
// }
if(Allow_Touch_flag==0)
{
Signal = 0;
}
if (PressState == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
@ -246,22 +224,12 @@ uint8_t RTE_Get_TouchBoard_Left_Sts(void)
Signal = TouchPanel_BtnSignalRead(BTN_LEFT);
}
// if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
// {
// Signal = BUTTON_RELEASE;
// }else{
// Signal = TouchPanel_BtnSignalRead(BTN_LEFT);
// }
if(Allow_Touch_flag==0)
{
Signal = 0;
}
if (PressState == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
@ -277,22 +245,11 @@ uint8_t RTE_Get_TouchBoard_Right_Sts(void)
Signal = TouchPanel_BtnSignalRead(BTN_RIGHT);
}
// if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
// {
// Signal = BUTTON_RELEASE;
// }else{
// Signal = TouchPanel_BtnSignalRead(BTN_RIGHT);
// }
if(Allow_Touch_flag==0)
{
Signal = 0;
}
if (PressState == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
@ -304,23 +261,12 @@ uint8_t RTE_Get_TouchBoard_Center_Sts(void)
{
Signal = TouchPanel_BtnSignalRead(BTN_CONFIRM);
}
// if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
// BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
// {
// Signal = BUTTON_RELEASE;
// }else{
// Signal = TouchPanel_BtnSignalRead(BTN_CONFIRM);
// }
if(Allow_Touch_flag==0)
{
Signal = 0;
}
if (PressState == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
@ -328,16 +274,19 @@ uint8_t RTE_Get_TouchBoard_Center_Sts(void)
uint8_t RTE_Get_TouchBoard_ADAS1_Sts(void)//TJP1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if(CurrentPosition == 2)
{
Signal = TouchPanel_BtnSignalRead(BTN_ADAS1);
}
if (PressState == 0)
if(Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_ADAS2_Sts(void)//TJP2
@ -351,17 +300,18 @@ uint8_t RTE_Get_TouchBoard_ADAS2_Sts(void)//TJP2
uint8_t RTE_Get_TouchBoard_Resu1_Sts(void)//Resume1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if(CurrentPosition == 1)
{
Signal = TouchPanel_BtnSignalRead(BTN_RESUME1);
}
if (PressState == 0)
if(Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Resu2_Sts(void)//Resume2
@ -374,17 +324,20 @@ uint8_t RTE_Get_TouchBoard_Resu2_Sts(void)//Resume2
uint8_t RTE_Get_TouchBoard_Cncl1_Sts(void)//Cancel1
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if(CurrentPosition == 3)
{
Signal = TouchPanel_BtnSignalRead(BTN_CANCEL1);
}
if (PressState == 0)
if(Allow_Touch_flag == 0)
{
Signal = BUTTON_RELEASE;
}
return Signal;
}
uint8_t RTE_Get_TouchBoard_Cncl2_Sts(void)//Cancel2
@ -481,27 +434,7 @@ uint8_t rtn_Y;
uint8_t RTE_Get_X_SNS(void)
{
#if 0
uint8_t count;
uint16_t sum_x=0;
uint8 x_pos;
GetSurface_Position(&x_pos, NULL_PTR);
X_Buf[X_CNT++]=x_pos;
if(X_CNT==X_Length)
{
X_CNT=0;
}
for(count=0;count<X_Length;count++)
{
sum_x+=(uint16_t)X_Buf[count];
}
if(x_pos==0)
{
sum_x=0;
}
return (uint8_t)(sum_x/X_Length);
#endif
#if 1
uint8_t i;
uint8_t j;
@ -589,26 +522,6 @@ uint8_t RTE_Get_X_SNS(void)
//uint8_t RTE_Get_Y5_SNS(void);
uint8_t RTE_Get_Y_SNS(void)
{
#if 0
uint8_t count;
uint16_t sum_y=0;
uint8 y_pos;
GetSurface_Position(NULL_PTR, &y_pos);
Y_Buf[Y_CNT++]=y_pos;
if(Y_CNT==Y_Length)
{
Y_CNT=0;
}
for(count=0;count<Y_Length;count++)
{
sum_y+=(uint16_t)Y_Buf[count];
}
if(y_pos==0)
{
sum_y=0;
}
return (uint8_t)(sum_y/Y_Length);
#endif
#if 1
uint8_t i;
@ -695,31 +608,11 @@ uint8_t RTE_Get_TouchBoard_XY_Sts(void)//Not active,Touch,Touch and Press,invali
{
//PanelPress_LevelType Press_Level;
Buttons_SignalType XY_Sts = BUTTON_RELEASE;
#if 0
if(BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_RESUME1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_CANCEL1) ||
BUTTON_RELEASE != TouchPanel_BtnSignalRead(BTN_ADAS1))
{
g_XY_Touch_And_Below_1N = 0x00;
XY_Sts = BUTTON_RELEASE;
}
else
{
XY_Sts = TouchSurface_XY_StsRead();
//Press_Level = TouchPanel_PressLevelRead();
if(TouchSurface_is_TouchActive() == TRUE)//PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_XY_Touch_And_Below_1N = 0x01;
}else{
g_XY_Touch_And_Below_1N = 0x00;
}
}
#else
if((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
{
Allow_Touch_flag=1;
//Allow_Touch_flag=1;
XY_Sts = TouchSurface_XY_StsRead();
//Press_Level = TouchPanel_PressLevelRead();
if(TouchSurface_is_TouchActive() == TRUE)//PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_XY_Touch_And_Below_1N = 0x01;
@ -729,13 +622,27 @@ uint8_t RTE_Get_TouchBoard_XY_Sts(void)//Not active,Touch,Touch and Press,invali
}
else
{
Allow_Touch_flag=0;
Allow_Touch_flag=0;
}
#endif
if (PressState == 0)
/*
if (Two_Finger_Y_count > 4 && Two_Finger_X_count > 4)
{
XY_Sts = 0;
Allow_Touch_flag=0;
}
else
{
XY_Sts = TouchSurface_XY_StsRead();
if(TouchSurface_is_TouchActive() == TRUE)//PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_XY_Touch_And_Below_1N = 0x01;
}else{
g_XY_Touch_And_Below_1N = 0x00;
}
}
*/
return XY_Sts;
}
@ -751,14 +658,7 @@ uint8_t RTE_Get_ACT_LD_OUT_SNS(void)
uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
{
#if 0
uint8_t ret_val = 0;
if(g_XY_Touch_And_Below_1N == TRUE)
{
ret_val = 0x01;
}
return ret_val;
#endif
#if 1
uint8_t ret_val = 0;
@ -767,7 +667,7 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
uint16_t Two_Finger_Y_data[5] = {};
uint16_t Two_Finger_X_data [5] = {};
uint16_t th_x[5],th_y[5];
uint8_t i,m;
@ -784,14 +684,23 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
Two_Finger_X_data[3]=Touch_Sensor_delta11;
Two_Finger_X_data[4]=Touch_Sensor_delta12;
th_x[0] = qtlib_key_configs_set1[3].channel_threshold;
th_x[1] = qtlib_key_configs_set1[4].channel_threshold;
th_x[2] = qtlib_key_configs_set1[5].channel_threshold;
th_x[3] = qtlib_key_configs_set1[6].channel_threshold;
th_x[4] = qtlib_key_configs_set1[7].channel_threshold;
th_y[0] = qtlib_key_configs_set1[8].channel_threshold;
th_y[1] = qtlib_key_configs_set1[9].channel_threshold;
th_y[2] = qtlib_key_configs_set1[10].channel_threshold;
th_y[3] = qtlib_key_configs_set1[11].channel_threshold;
th_y[4] = qtlib_key_configs_set1[12].channel_threshold;
Two_Finger_Y_count=0;
for(i=0;i<5;i++)
{
if(Two_Finger_Y_data[i]>25)
if(Two_Finger_Y_data[i]>th_y[i])
{
Two_Finger_Y_count++;
}
@ -799,11 +708,11 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
i=0;
Y_count=0;
while(Two_Finger_Y_data[i++]<=25 && i<5);
while(Two_Finger_Y_data[i]<=th_y[i++] && i<5);
i--;
for(;i<5;i++)
{
if(Two_Finger_Y_data[i]<=25)
if(Two_Finger_Y_data[i]<=th_y[i])
break;
else
Y_count++;
@ -814,7 +723,7 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
Two_Finger_X_count=0;
for(m=0;m<5;m++)
{
if(Two_Finger_X_data[m]>25)
if(Two_Finger_X_data[m]>th_x[m])
{
Two_Finger_X_count++;
}
@ -822,11 +731,11 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
}
m=0;
X_count=0;
while(Two_Finger_X_data[m++]<=25 && m<5);
while(Two_Finger_X_data[m]<=th_x[m++] && m<5);
m--;
for(;m<5;m++)
{
if(Two_Finger_X_data[m]<=25)
if(Two_Finger_X_data[m]<=th_x[m])
break;
else
X_count++;
@ -835,17 +744,6 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
if((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
{
/*
XY_Sts = TouchSurface_XY_StsRead();
if(XY_Sts>0)
{
ret_val=1;
}
else
{
ret_val=0;
}
*/
if(g_XY_Touch_And_Below_1N == TRUE && CurrentPosition>=4)
{
ret_val = 0x01;
@ -1160,26 +1058,52 @@ else
//Output CAN
void RTE_Set_CAN_LeMFctActSgCe(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_LEMFCTACTSGCE, &Value);
}
void RTE_Set_CAN_LeMFctActSgDn(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_LEMFCTACTSGDN, &Value);
}
void RTE_Set_CAN_LeMFctActSgLe(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_LEMFCTACTSGLE, &Value);
}
void RTE_Set_CAN_LeMFctActSgRi(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_LEMFCTACTSGRI, &Value);
}
void RTE_Set_CAN_LeMFctActSgUp(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_LEMFCTACTSGUP, &Value);
}
@ -1188,7 +1112,11 @@ uint8_t g_TouchBoard_ADAS1_Sts = BUTTON_RELEASE;
void RTE_Set_CAN_SteerWhlTouchBdADAS(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
if((Value == BUTTON_TOUCH_AND_PRESS && g_TouchBoard_ADAS1_Sts != BUTTON_TOUCH_AND_PRESS) ||
(Value != BUTTON_TOUCH_AND_PRESS && g_TouchBoard_ADAS1_Sts == BUTTON_TOUCH_AND_PRESS))
{
@ -1248,18 +1176,14 @@ void RTE_Set_CAN_SteerWhlTouchBdCnclQf1(uint8_t Value)
}
uint8_t g_TouchBoard_Cncl1_Sts = BUTTON_RELEASE;
void RTE_Set_CAN_SteerWhlTouchBdCnclSteerWhlTouchBdSts(uint8_t Value)
{
if((Value == BUTTON_TOUCH_AND_PRESS && g_TouchBoard_Cncl1_Sts != BUTTON_TOUCH_AND_PRESS) ||
(Value != BUTTON_TOUCH_AND_PRESS && g_TouchBoard_Cncl1_Sts == BUTTON_TOUCH_AND_PRESS))
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
g_speeker_event |= 0x02;
//speeker_Tig_Once(60, SA51024_STRENGTH_LEVEL3);
Value = 0;
}
g_TouchBoard_Cncl1_Sts = Value;
InitMessage(SIG_STEERWHLTOUCHBDCNCLSTEERWHLTOUCHBDSTS, &Value);
Cancel_Sts=Value;
}
@ -1269,18 +1193,16 @@ void RTE_Set_CAN_SteerWhlTouchBdCrsResuQf1(uint8_t Value)
InitMessage(SIG_STEERWHLTOUCHBDCRSRESUQF1, &Value);
}
uint8_t g_TouchBoard_Resu1_Sts = BUTTON_RELEASE;
void RTE_Set_CAN_SteerWhlTouchBdCrsResuSteerWhlTouchBdSts(uint8_t Value)
{
if((Value == BUTTON_TOUCH_AND_PRESS && g_TouchBoard_Resu1_Sts != BUTTON_TOUCH_AND_PRESS) ||
(Value != BUTTON_TOUCH_AND_PRESS && g_TouchBoard_Resu1_Sts == BUTTON_TOUCH_AND_PRESS))
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
g_speeker_event |= 0x04;
//speeker_Tig_Once(60, SA51024_STRENGTH_LEVEL3);
Value = 0;
}
g_TouchBoard_Resu1_Sts = Value;
InitMessage(SIG_STEERWHLTOUCHBDCRSRESUSTEERWHLTOUCHBDSTS, &Value);
}
@ -1301,47 +1223,12 @@ uint8_t speeker_Tig_gap_cnt = 0;//kailong remove
void RTE_Set_CAN_SteerWhlTouchBdLeSteerWhlTouchBdSts(uint8_t Value)
{
//kailong
#if 1
if((Value == BUTTON_TOUCH_AND_PRESS && g_last_SteerWhlTouchBdSts != BUTTON_TOUCH_AND_PRESS) ||
(Value != BUTTON_TOUCH_AND_PRESS && g_last_SteerWhlTouchBdSts == BUTTON_TOUCH_AND_PRESS))
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
g_speeker_event |= 0x08;
Value = 0;
}
if(speeker_Tig_gap_cnt != 0x00){
speeker_Tig_gap_cnt--;
}
if(g_speeker_event != 0x00)
{
if(speeker_Tig_gap_cnt == 0x00)
{
if((g_speeker_event&0x07) != 0x00)// ADAS1 Resu1 Cncl1
{
// speeker_Tig_Once(49, SA51024_STRENGTH_LEVEL2);
speeker_Tig_gap_cnt = 25;//25ms
}
else if(g_speeker_event&0x08)
{
if(g_TouchBoard_ADAS1_Sts == BUTTON_RELEASE &&
g_TouchBoard_Resu1_Sts == BUTTON_RELEASE &&
g_TouchBoard_Cncl1_Sts == BUTTON_RELEASE)
{
// speeker_Tig_Once(49, SA51024_STRENGTH_LEVEL2);
speeker_Tig_gap_cnt = 25;//25ms
}
}
}
g_speeker_event = 0x00;
}
g_last_SteerWhlTouchBdSts = Value;
#endif
InitMessage(SIG_STEERWHLTOUCHBDLESTEERWHLTOUCHBDSTS, &Value);
//TouchBoard_Sts=Value;
@ -1350,11 +1237,21 @@ void RTE_Set_CAN_SteerWhlTouchBdLeSteerWhlTouchBdSts(uint8_t Value)
void RTE_Set_CAN_SteerWhlTouchBdLeTouchPosnX(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNX, &Value);
//TouchBoard_X=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdLeTouchPosnY(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDLETOUCHPOSNY, &Value);
//TouchBoard_Y=Value;
}
@ -1479,6 +1376,8 @@ void RTE_Set_All_Test_Value(void)
{
uint16_t Press_baseline;
uint16_t Press_signal,Press_preload;
uint8_t i,sensor_state;
static uint32_t Press_reset_counter[16],Press_repeat_counter[16],baseline_error_counter,baseline_error_repeat_counter;
Press_baseline=Get_forcedetect_basline_value();
Press_signal=Get_forcedetect_force_value();
Press_preload = Get_forcedetect_preload_value();
@ -1488,8 +1387,68 @@ void RTE_Set_All_Test_Value(void)
InitMessage(SIG_SWTLPRESSBASELINE, &Press_baseline);//Press_baseline
InitMessage(SIG_SWTLPRESSSIGNAL, &Press_signal);//Press_signal-Convert to N: TouchPanel_PressNValue = ((float32)Press_signal / (float32)0xF2);
for (i = 0; i < 15; i++)
{
if (get_sensor_node_signal(i) > (get_sensor_node_reference(i) + qtlib_key_configs_set1[i].channel_threshold))
{
Press_reset_counter[i]++;
if (Press_reset_counter[i] > 25000)//50s = 50000 ms
{
if (Press_repeat_counter[i] == 0)
{
Press_repeat_counter[i] = 55000;//110S
Press_reset_counter[i] = 0;
//update_sensor_node_reference(i,get_sensor_node_signal(i));
}
else
{
touch_reset2times_flag = 1;
}
}
}
else
{
Press_reset_counter[i] = 0;
}
if (Press_repeat_counter[i] > 0)
{
Press_repeat_counter[i]--;
}
}
for (i = 0; i < 16; i++)
{
if (get_sensor_node_reference(i) == 0)
{
baseline_error_counter++;
if (baseline_error_counter > 25000)//50s
{
if (baseline_error_repeat_counter!=0)
{
touch_reset2times_flag = 1;
}
else
{
baseline_error_repeat_counter = 55000;//110S
ADC0_Initialize();
}
}
break;
}
}
if (i == 16)
{
baseline_error_counter = 0;
}
if (baseline_error_repeat_counter > 0)
{
baseline_error_repeat_counter--;
}

View File

@ -32,9 +32,13 @@ void Tle9263_Init(void) {
#endif
//sbc_configure_watchdog(TIME_OUT_WD, WD_STARTS_AFTER_CAN_LIN_WAKE, WD_1000MS);
}
extern uint8_t touch_reset2times_flag;
void Tle9263_MainTask(void) {
/* Trigger Watchdog every 100ms */
if (touch_reset2times_flag == 1)
{
return;
}
if (timeref ++ > 5) {
sbc_wd_trigger();
timeref = 0;

View File

@ -21,9 +21,7 @@
#include "calib_public.h"
#include "smartee.h"
#include "SysDiagDetect.h"
//#define DEBUG_TEST
//#define PRESS_DEBUG
//#define TOUCH_DEBUG
static uint16 sensor_signal[DEF_NUM_CHANNELS] = {0};
static uint16 sensor_reference[DEF_NUM_CHANNELS] = {0};
@ -46,14 +44,12 @@ volatile uint8 Vibra_force_level=0;
volatile uint8 last_Vibra_force_level=0;
volatile uint8 Over3N_vibra_req = 0x00;
volatile uint8 Below1P5N_vibra_req = 0x00;
uint8_t PressState=0;
uint8 UDS_Vibration_Gain = 0;
uint8 UDS_DAC_Timer_Period = 80;
uint8 Touch_Flag = TOUCH_KET_OFF;
#if defined(PRESS_DEBUG) || defined(TOUCH_DEBUG) || defined(DEBUG_TEST)
extern void CanTx(t_can_handler can_handler, bool notif, uint32_t idtp, uint16_t len, t_can_data can_data);
#endif
uint8 CurrentPosition = 0xff;//0xff no position 1:fun1 2:fun2 3:fun3 4:up 5:down 6:left 7:right 8:ok
uint8 Surface_Button = 0xff;
@ -535,10 +531,7 @@ boolean TouchSurface_is_TouchActive(void)
{
ret = TRUE;
}
if (PressState == 0)
{
ret = FALSE;
}
return ret;
}
@ -566,88 +559,11 @@ Buttons_SignalType TouchSurface_XY_StsRead(void)
}
if (PressState == 0)
{
XY_Sts = FALSE;
}
return XY_Sts;
}
//kailong
#if 0
uint8 Vibra_PressCheck(void)
{
uint16 RawData = 0;
uint16 temp_RawData = 0;
static uint16 LastRawData = 0;
static PanelPress_LevelType Last_PressLevel = PANEL_PRESS_LEVEL0;
PanelPress_LevelType ret_Press = PANEL_PRESS_LEVEL0;
float32 FilterValue;
float32 PressNValueTable[3][2] = {
{1.5f, 3.0f},
{0.5f, 3.6f},
{0.8f, 2.0f}
};
if(Last_PressLevel > PANEL_PRESS_LEVEL2){ Last_PressLevel = PANEL_PRESS_LEVEL0;}
////if(TRUE == GET_TouchPanel_is_Press())
temp_RawData = (0xfff & Get_forcedetect_force_value());
if(SPEAKER_UPDATE_CYCLE == Get_Speaker_Main_State() || SPEAKER_START == Get_Speaker_Main_State())
{
RawData = LastRawData;
}
else
{
if(temp_RawData&0x800)//negative
{
RawData = 0x00;
}else{
RawData = temp_RawData;
}
if(abs(RawData - LastRawData) > (10*0xF2))
{
RawData = LastRawData;
}
}
TouchPanel_PressRawData = RawData;
TouchPanel_PressNValue = ((float32)RawData / (float32)0xF2);
FilterValue = AlideAverage_Filter(1, TouchPanel_PressNValue);
if(FilterValue < PressNValueTable[Last_PressLevel][0]){//< 1N
ret_Press = PANEL_PRESS_LEVEL0;
}else if(FilterValue >= PressNValueTable[Last_PressLevel][0] &&
FilterValue < PressNValueTable[Last_PressLevel][1]){//1N~~3N
ret_Press = PANEL_PRESS_LEVEL1;
}else{//>=3
ret_Press = PANEL_PRESS_LEVEL2;
}
LastRawData = RawData;
Last_PressLevel = ret_Press;
#ifdef PRESS_DEBUG
{
uint8 data[8] = {0};
data[0] = (uint8)(10*FilterValue);
data[1] = (uint8)(10*TouchPanel_PressNValue);
data[2] = (uint8)(ret_Press);
data[5] =(uint8)(TouchPanel_PressRawData & 0xff) ;
data[4] =(uint8)(( TouchPanel_PressRawData &0xff00)>>8);
CanTx(0, true, 0x111, 8, data);
}
#endif
return ret_Press;
}
#endif
//kailong
static PanelPress_LevelType TouchPanel_PressCheck(void)
@ -929,21 +845,12 @@ static Buttons_SignalType TouchSurface_BntCheck(Buttons_ChType ChId, TouchPanel_
switch (TouchPanel_PressLevel)
{
case PANEL_PRESS_LEVEL0:
//PB_force_Reach2_flag = 0;
BSignal = BUTTON_TOUCH;
break;
case PANEL_PRESS_LEVEL1:
//if(PB_force_Reach2_flag == 1)
//{
//BSignal = BUTTON_TOUCH_AND_PRESS;
// }
// else
// {
BSignal = BUTTON_TOUCH;
// }
break;
case PANEL_PRESS_LEVEL2:
//PB_force_Reach2_flag = 1;
BSignal = BUTTON_TOUCH_AND_PRESS;
break;
default:
@ -967,6 +874,11 @@ static Buttons_SignalType TouchButton_BntCheck(Buttons_ChType ChId)
if(ChId == BTN_RESUME1 || ChId == BTN_ADAS1 || ChId == BTN_CANCEL1)
{
key_status[ChId].status = get_sensor_state(ChId);
if (ChId == BTN_CANCEL1)
{
key_status[ChId].status = (get_sensor_state(ChId) == QTM_KEY_STATE_DETECT || get_sensor_state(ChId+13) == QTM_KEY_STATE_DETECT)?QTM_KEY_STATE_DETECT:get_sensor_state(ChId);
}
if (QTM_KEY_STATE_DETECT == (key_status[ChId].status)) {//KEY_TOUCHED_MASK
//Touch detect
key_status[ChId].RunCycle++;
@ -977,35 +889,25 @@ static Buttons_SignalType TouchButton_BntCheck(Buttons_ChType ChId)
if(Force_Sens_Err == 0)
{
switch (TouchPanel_PressLevel)
{
case PANEL_PRESS_LEVEL0:
//TB_force_Reach2_flag = 0;
BSignal = BUTTON_TOUCH;
case PANEL_PRESS_LEVEL1:
//if(TB_force_Reach2_flag == 1)
// {
//BSignal = BUTTON_TOUCH_AND_PRESS;
// }
// else
// {
BSignal = BUTTON_TOUCH;
// }
break;
case PANEL_PRESS_LEVEL2:
//TB_force_Reach2_flag = 1;
BSignal = BUTTON_TOUCH_AND_PRESS;
break;
default:
break;
}
switch (TouchPanel_PressLevel)
{
case PANEL_PRESS_LEVEL0:
BSignal = BUTTON_TOUCH;
case PANEL_PRESS_LEVEL1:
BSignal = BUTTON_TOUCH;
// }
break;
case PANEL_PRESS_LEVEL2:
BSignal = BUTTON_TOUCH_AND_PRESS;
break;
default:
break;
}
}
else //backup When force sensor error happened
{
BSignal = BUTTON_TOUCH;
}
else //backup When force sensor error happened
{
BSignal = BUTTON_TOUCH;
}
}
} else {
@ -1086,24 +988,7 @@ static TP_SlideDirection_Enum GetSlide_Direction(uint8 startX, uint8 startY, uin
return result;
}
#if 0
uint8 KalmanFilter(uint8 inData, uint8 Dtype)
{
static float32 kalman[2] = {0};
static float32 p[2] = {10, 10};
float32 q = 0.001;
float32 r = 0.001;
float32 kg = 0;
if(Dtype < 2)
{
p[Dtype] += q;
kg = p[Dtype] / ( p[Dtype] + r );
kalman[Dtype] = kalman[Dtype] + (kg * (inData - kalman[Dtype]));
p[Dtype] = (1 - kg) * p[Dtype];
}
return (uint8)kalman[Dtype];
}
#endif
struct Point {
float x;
@ -1164,145 +1049,16 @@ static void TouchPanel_XY_Convert(uint8 origin_x, uint8 origin_y)
Surface_Convert.convert_x = convert_x; //KalmanFilter(convert_x, 0);
Surface_Convert.convert_y = convert_y; //KalmanFilter(convert_y, 0);
}
#ifdef TOUCH_DEBUG
#if 0
static uint8 xAlideAverage_Filter(uint8 module, uint8 mode, uint8 RawData)
{
#define MAX_MODULE 8
#define XMAX_ALIDE_AVG_NUM 3
static uint16 CalcAverageNum[MAX_MODULE] = {0};
static uint16 DIndex[MAX_MODULE] = {0};
static uint16 Mode_Status[MAX_MODULE] = {0};
static uint8 RawData_Table[MAX_MODULE][XMAX_ALIDE_AVG_NUM] = {0};
uint16 i;
uint32 Sum = 0;
uint8 AverageValue = 0;
if(mode == 0x00){
CalcAverageNum[module] = 0;
DIndex[module] = 0;
Mode_Status[module] = 0;
for(i=0; i<XMAX_ALIDE_AVG_NUM; i++){
RawData_Table[module][i] = 0;
}
}else{
if(Mode_Status[module] == 0x00)
{
if(CalcAverageNum[module] < XMAX_ALIDE_AVG_NUM)
{
RawData_Table[module][CalcAverageNum[module]++] = RawData;
for(i=0; i<CalcAverageNum[module]; i++)
{
Sum += RawData_Table[module][i];
}
}
if(CalcAverageNum[module] >= XMAX_ALIDE_AVG_NUM)
{
Mode_Status[module] = 0x01;
DIndex[module] = 0;
}
AverageValue = Sum/(CalcAverageNum[module]);
}
else
{
RawData_Table[module][DIndex[module]++] = RawData;
if(DIndex[module] >= XMAX_ALIDE_AVG_NUM){
DIndex[module] = 0x00;
}
for(i=0; i<XMAX_ALIDE_AVG_NUM; i++)
{
Sum += RawData_Table[module][i];
}
AverageValue = Sum/XMAX_ALIDE_AVG_NUM;
}
}
return AverageValue;
}
#endif
#endif
void touch_test(void)
{
#ifdef TOUCH_DEBUG
{
uint8 touch_data2[8] = {0};
uint8 touch_data3[8] = {0};
#if 0
static uint16 change_flag[2] = {0};
static uint8 out_Average[2] = {0};
static uint8 FilterCnt[2] = {0};
if(TouchSurface_is_TouchActive())
{
if(change_flag[0] == 0x00){
xAlideAverage_Filter(0, 0, TouchSurface.x_position);
xAlideAverage_Filter(1, 0, TouchSurface.y_position);
change_flag[0] = 1;
FilterCnt[0] = 0x00;
}
else if(change_flag[0] == 1)
{
TouchSurface.x_position = xAlideAverage_Filter(0, 1, TouchSurface.x_position);
TouchSurface.y_position = xAlideAverage_Filter(1, 1, TouchSurface.y_position);
if(TouchSurface.Event == TOUCH_PANEL_PRESS_EVENT){
FilterCnt[0]++;
if(FilterCnt[0] > 3)
{
FilterCnt[0] = 0x00;
out_Average[0] = TouchSurface.x_position;
out_Average[1] = TouchSurface.y_position;
change_flag[0] = 2;
}
}
}
else
{
if(TouchSurface.Event == TOUCH_PANEL_PRESS_EVENT)
{
if(abs(TouchSurface.x_position - out_Average[0]) <= 5 || abs(TouchSurface.y_position - out_Average[1]) <= 5)
{
TouchSurface.x_position = out_Average[0];
TouchSurface.y_position = out_Average[1];
}else{
TouchSurface.x_position = out_Average[0];
TouchSurface.y_position = out_Average[1];
change_flag[0] = 1;
FilterCnt[0] = 0x00;
}
}else{
change_flag[0] = 0x00;
}
}
}
else
{
change_flag[0] = 0x00;
}
Surface_Convert.convert_x = TouchSurface.x_position;
Surface_Convert.convert_y = TouchSurface.y_position;
#endif
touch_data2[0] = Surface_Convert.convert_x;
touch_data2[1] = Surface_Convert.convert_y;
touch_data2[2] = TouchSurface_XY_StsRead();
touch_data2[3] = TouchSurface_is_TouchActive();
touch_data2[4] = (0xf0&(TouchSurface.Event<<0x04))| (0x0f&(TouchPanel_PressLevelRead())) ;
touch_data2[5] = TouchPanel_BtnSignalRead(BTN_RESUME1);
touch_data2[6] = TouchPanel_BtnSignalRead(BTN_ADAS1);
touch_data2[7] = TouchPanel_BtnSignalRead(BTN_CANCEL1);
CanTx(0, true, 0x333, 8, touch_data2);
touch_data3[0] = TouchPanel_BtnSignalRead(BTN_UP);
touch_data3[1] = TouchPanel_BtnSignalRead(BTN_DOWN);
touch_data3[2] = TouchPanel_BtnSignalRead(BTN_LEFT);
touch_data3[3] = TouchPanel_BtnSignalRead(BTN_RIGHT);
touch_data3[4] = TouchPanel_BtnSignalRead(BTN_CONFIRM);
CanTx(0, true, 0x444, 8, touch_data3);
}
#endif
}
extern uint8_t Allow_Touch_flag;
//static uint16_t touch_delay = 500;
void TouchPanel_MainFunction(void)
{
@ -1327,71 +1083,43 @@ void TouchPanel_MainFunction(void)
static uint8 threshold_select_left = 0;
static uint8 threshold_select_right = 0;
static uint8 threshold_select_confirm = 0;
#ifdef DEBUG_TEST
volatile uint8 button_touch = 0;
volatile uint8 touch_pannel = 0;
#endif
/*
if(Get_forcedetect_force_value() < 50 || Get_forcedetect_force_value()>2047)
{
if (touch_delay > 0)
{
touch_delay--;
}
else
{
PressState = 0;
return;
}
}
else
{
PressState = 1;
touch_delay = 500;
}*/
PressState = 1;
touch_process();
//kailong add
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_ADAS1))
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_ADAS1) && QTM_KEY_STATE_DETECT == get_sensor_state(BTN_ADAS1+13))
{
//if(CurrentPosition == 0xff)
//{
CurrentPosition = 2;
threshold_select_adas=1;
// }
CurrentPosition = 2;
threshold_select_adas=1;
}
else
{
threshold_select_adas=0;
}
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_RESUME1))
{
//if(CurrentPosition == 0xff)
//{
CurrentPosition = 1;
threshold_select_resume=1;
//}
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_RESUME1) && QTM_KEY_STATE_DETECT == get_sensor_state(BTN_RESUME1+13))
{
CurrentPosition = 1;
threshold_select_resume=1;
}
else
{
threshold_select_resume=0;
threshold_select_resume=0;
}
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_CANCEL1))
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_CANCEL1) || QTM_KEY_STATE_DETECT == get_sensor_state(BTN_CANCEL1+13))
{
//if(CurrentPosition == 0xff)
//{
CurrentPosition = 3;
threshold_select_cancel=1;
//}
CurrentPosition = 3;
threshold_select_cancel=1;
}
else
{
threshold_select_cancel=0;
threshold_select_cancel=0;
}
if((TouchPanel_SurfaceStatus & TOUCH_ACTIVE) == 1)
@ -1512,7 +1240,44 @@ void TouchPanel_MainFunction(void)
threshold_select_confirm=0;
Surface_Button = 0;
}
switch (CurrentPosition)
{
case 1:
g_Trig_Threshold=Button0_GetRESUME1_Trig_Threshold();
g_Release_Threshold=Button0_GetRESUME1_Release_Threshold();
break;
case 2:
g_Trig_Threshold= Button3_GetADAS1_Trig_Threshold();
g_Release_Threshold= Button3_GetADAS1_Release_Threshold();
break;
case 3:
g_Trig_Threshold=Button5_GetCANCEL1_Trig_Threshold();
g_Release_Threshold= Button5_GetCANCEL1_Release_Threshold();
break;
case 4:
g_Trig_Threshold=Button6_GetBTN_UP_Trig_Threshold();
g_Release_Threshold= Button6_GetBTN_UP_Release_Threshold();
break;
case 5:
g_Trig_Threshold=Button7_GetBTN_DOWN_Trig_Threshold();
g_Release_Threshold= Button7_GetBTN_DOWN_Release_Threshold();
break;
case 6:
g_Trig_Threshold=Button8_GetBTN_LEFT_Trig_Threshold();
g_Release_Threshold= Button8_GetBTN_LEFT_Release_Threshold();
break;
case 7:
g_Trig_Threshold=Button9_GetBTN_RIGHT_Trig_Threshold();
g_Release_Threshold= Button9_GetBTN_RIGHT_Release_Threshold();
break;
case 8:
g_Trig_Threshold=Button10_GetBTN_CONFIRM_Trig_Threshold();
g_Release_Threshold= Button10_GetBTN_CONFIRM_Release_Threshold();
break;
default:
break;
}
/*
if(threshold_select_resume == 1 && threshold_select_adas==0 && threshold_select_cancel==0 && threshold_select_up==0 && threshold_select_down==0 && threshold_select_left==0 && threshold_select_right==0 && threshold_select_confirm==0 )
{
g_Trig_Threshold=Button0_GetRESUME1_Trig_Threshold();
@ -1557,8 +1322,9 @@ void TouchPanel_MainFunction(void)
{
g_Trig_Threshold=Button10_GetBTN_CONFIRM_Trig_Threshold();
g_Release_Threshold= Button10_GetBTN_CONFIRM_Release_Threshold();
}
}
*/
//InitMessage(SIG_SWTLSENSOR1_BASELINE, &g_Trig_Threshold);
TouchPanel_PressLevel = TouchPanel_PressCheck();
@ -1885,7 +1651,8 @@ void TouchPanel_MainFunction(void)
if(count == BTN_MAX_CH_NUM)
{
CurrentPosition = 0xff;
CurrentPosition = 0xff;
//Allow_Touch_flag=1;
}
@ -1894,39 +1661,9 @@ void TouchPanel_MainFunction(void)
TouchSurface.Event = TOUCH_PANEL_NONE_EVENT;
}
touch_test();
#ifdef DEBUG_TEST
for(index = 0; index< 3; index++)
{
if(Buttons_Signal[index] != BUTTON_RELEASE)
{
button_touch++;
}
//g_key_status[index] |= get_sensor_state(index) & KEY_TOUCHED_MASK;
}
for(index = 3; index< 8; index++)
{
if(Buttons_Signal[index] != BUTTON_RELEASE)
{
touch_pannel++;
}
}
if(button_touch == 1 || touch_pannel > 0)
{
if(button_touch == 1)
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)1);
else
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)400);
button_touch = 0;
}else{
(void)TCC0_PWM24bitDutySet(TCC0_CHANNEL0, (uint16_t)6000);
}
#endif
measurement_done_touch = 0;
}
@ -1949,7 +1686,7 @@ void TouchPanel_MainFunction(void)
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_ADAS1))
if (threshold_select_adas == 1)
{
K_Vibra_Trig_adas=1;
}
@ -1958,7 +1695,7 @@ void TouchPanel_MainFunction(void)
K_Vibra_Trig_adas=0;
}
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_CANCEL1))
if (threshold_select_cancel == 1)
{
K_Vibra_Trig_cancel=1;
}
@ -1967,7 +1704,7 @@ void TouchPanel_MainFunction(void)
K_Vibra_Trig_cancel=0;
}
if (QTM_KEY_STATE_DETECT == get_sensor_state(BTN_RESUME1))
if (threshold_select_resume == 1)
{
K_Vibra_Trig_resume=1;
}
@ -1978,9 +1715,8 @@ void TouchPanel_MainFunction(void)
if(Vibra_force_level == 2 && last_Vibra_force_level != 2
&&
((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
)
&&((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
)
{
Over3N_vibra_req = 1;
Below1P5N_vibra_req = 0;
@ -1992,7 +1728,7 @@ void TouchPanel_MainFunction(void)
}
last_Vibra_force_level=Vibra_force_level;
if((K_Vibra_Trig_pad==1||K_Vibra_Trig_adas==1||K_Vibra_Trig_cancel==1||K_Vibra_Trig_resume==1)&&Vibra_force_level==2)
if((K_Vibra_Trig_pad==1||K_Vibra_Trig_adas==1||K_Vibra_Trig_cancel==1||K_Vibra_Trig_resume==1)&&Vibra_force_level==2&&Allow_Touch_flag==1)
{
Reach2_flag=1;
}
@ -2001,7 +1737,7 @@ void TouchPanel_MainFunction(void)
//Vibra_force_level=Vibra_PressCheck();
if((K_Vibra_Trig_pad==1||K_Vibra_Trig_adas==1||K_Vibra_Trig_cancel==1||K_Vibra_Trig_resume==1)&&Over3N_vibra_req == 1)
if((K_Vibra_Trig_pad==1||K_Vibra_Trig_adas==1||K_Vibra_Trig_cancel==1||K_Vibra_Trig_resume==1)&&Over3N_vibra_req == 1&&Allow_Touch_flag==1)
{
Touch_Flag = TOUCH_KET_ON;
speeker_Tig_Once(49, UDS_Vibration_Gain);
@ -2018,6 +1754,11 @@ void TouchPanel_MainFunction(void)
Reach2_flag = 0;
}
if (CurrentPosition == 0xff)
{
Allow_Touch_flag=1;
}

View File

@ -118,67 +118,67 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define NODE_0_PARAMS \
{ \
X_NONE, Y(31), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(31), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_1_PARAMS \
{ \
X_NONE, Y(15), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(15), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_2_PARAMS \
{ \
X_NONE, Y(17), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(17), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_3_PARAMS \
{ \
X_NONE, Y(20), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(20), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_4_PARAMS \
{ \
X_NONE, Y(25), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(25), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_5_PARAMS \
{ \
X_NONE, Y(1), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(1), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_6_PARAMS \
{ \
X_NONE, Y(5), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(5), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_7_PARAMS \
{ \
X_NONE, Y(3), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(3), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_8_PARAMS \
{ \
X_NONE, Y(10), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(10), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_9_PARAMS \
{ \
X_NONE, Y(11), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(11), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_10_PARAMS \
{ \
X_NONE, Y(12), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(12), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_11_PARAMS \
{ \
X_NONE, Y(13), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(13), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_12_PARAMS \
{ \
X_NONE, Y(14), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(14), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_13_PARAMS \
{ \
X_NONE, Y(30), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(30), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_14_PARAMS \
{ \
X_NONE, Y(21), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(21), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#define NODE_15_PARAMS \
{ \
X_NONE, Y(16), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(16), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
/**********************************************************/
@ -196,13 +196,13 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define KEY_0_PARAMS \
{ \
54u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
48u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
}
#define KEY_1_PARAMS \
{ \
49u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
48u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
}
@ -214,73 +214,73 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define KEY_3_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
61u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_4_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
60u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_5_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
57u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_6_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
63u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_7_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
72u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_8_PARAMS \
{ \
44u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
49u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_9_PARAMS \
{ \
44u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
54u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_10_PARAMS \
{ \
44u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
47u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_11_PARAMS \
{ \
44u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
55u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_12_PARAMS \
{ \
44u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
59u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_13_PARAMS \
{ \
52u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
48u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
}
#define KEY_14_PARAMS \
{ \
59u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
48u, (uint8_t)HYST_12_5, (uint8_t)NO_AKS_GROUP \
}
@ -301,7 +301,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
* Range: 0 to 255.
* Default value: 5.
*/
#define DEF_ANTI_TCH_DET_INT 5u
#define DEF_ANTI_TCH_DET_INT 3u
/* Threshold beyond with automatic sensor recalibration is initiated.
* Range: RECAL_100/ RECAL_50 / RECAL_25 / RECAL_12_5 / RECAL_6_25 / MAX_RECAL
@ -342,7 +342,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
* Range: 0-255
* Default value: 0
*/
#define DEF_MAX_ON_DURATION 100u
#define DEF_MAX_ON_DURATION 250u
/**********************************************************/
@ -397,7 +397,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
* The minimum contact size measurement for persistent contact tracking.
* Contact size is the sum of neighbouring keys' touch deltas forming the touch contact.
*/
#define SURFACE_CS_MIN_CONTACT 60u
#define SURFACE_CS_MIN_CONTACT 140u
/**********************************************************/

View File

@ -323,20 +323,7 @@ int main ( void )
/* Check CAN Status */
status = CAN1_ErrorGet();
#if 0
if (Can1BusErrFlag == false)
{
WDT_Clear();
}
else
{
StopPeriodic();
StopCom(COM_NORMAL_MODE);
Can1BusErrFlag = false;
NVIC_SystemReset();
while(1);
}
#endif
WDT_Clear();
//if(Fuction_State == Function_State_A)
//{