SW0303_20240722

This commit is contained in:
sunbeam 2024-07-26 14:40:56 +08:00
parent 7f505ddc90
commit 6104fa92df
8 changed files with 526 additions and 501 deletions

File diff suppressed because it is too large Load Diff

View File

@ -79,8 +79,8 @@ static void Force_Sensor_Diag_Task(void)
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;
static uint16_t fault_count = 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 &&
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)
@ -125,13 +125,13 @@ static void Touch_Sensor_Diag_Task(void)
fault_count2 = 0;
*/
}
extern uint8_t Allow_Touch_flag;
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;//Allow_Touch_flag;
InitMessage(SIG_DIAGCFAILRTOUCHPANSWTRVIBRATIONFLTSTS, &Vibra_Fault);
/*

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,6 +1,6 @@
#include "FunctionState.h"
#include "plib_port.h"
#include "plib_adc1.h"
extern uint16 adc[2] ;
uint8 Fuction_State = 1 ;
uint8 Control_SDZ = 1 ;
@ -15,6 +15,18 @@ void FunctionState_Task(void)
static uint16 Into_C_count = 0;
static uint8_t adcResetFlag = 0;
adcResetFlag = !adcResetFlag;
if (adcResetFlag == 0)
{
ADC1_Initialize();
return;
}
LD_AD_Val = adc[1];
switch(Fuction_State)
@ -25,7 +37,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 +45,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 +60,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 +68,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 +81,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 +91,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

@ -61,6 +61,8 @@ uint8_t Two_Finger_X_count = 0;
uint8_t X_count = 0;
uint8_t Y_count = 0;
uint8_t touch_reset2times_flag = 0;
uint16_t Touch_Sensor_Sts00;
uint16_t Touch_Sensor_Sts01;
uint16_t Touch_Sensor_Sts02;
@ -110,77 +112,6 @@ uint16_t Touch_Sensor_delta12;
uint16_t Touch_Sensor_delta13;
uint16_t Touch_Sensor_delta14;
#if 0
static uint8_t autoCrc_Table[256] =
{
0x00u, 0x1du, 0x3au, 0x27u, 0x74u, 0x69u, 0x4eu, 0x53u,
0xe8u, 0xf5u, 0xd2u, 0xcfu, 0x9cu, 0x81u, 0xa6u, 0xbbu,
0xcdu, 0xd0u, 0xf7u, 0xeau, 0xb9u, 0xa4u, 0x83u, 0x9eu,
0x25u, 0x38u, 0x1fu, 0x02u, 0x51u, 0x4cu, 0x6bu, 0x76u,
0x87u, 0x9au, 0xbdu, 0xa0u, 0xf3u, 0xeeu, 0xc9u, 0xd4u,
0x6fu, 0x72u, 0x55u, 0x48u, 0x1bu, 0x06u, 0x21u, 0x3cu,
0x4au, 0x57u, 0x70u, 0x6du, 0x3eu, 0x23u, 0x04u, 0x19u,
0xa2u, 0xbfu, 0x98u, 0x85u, 0xd6u, 0xcbu, 0xecu, 0xf1u,
0x13u, 0x0eu, 0x29u, 0x34u, 0x67u, 0x7au, 0x5du, 0x40u,
0xfbu, 0xe6u, 0xc1u, 0xdcu, 0x8fu, 0x92u, 0xb5u, 0xa8u,
0xdeu, 0xc3u, 0xe4u, 0xf9u, 0xaau, 0xb7u, 0x90u, 0x8du,
0x36u, 0x2bu, 0x0cu, 0x11u, 0x42u, 0x5fu, 0x78u, 0x65u,
0x94u, 0x89u, 0xaeu, 0xb3u, 0xe0u, 0xfdu, 0xdau, 0xc7u,
0x7cu, 0x61u, 0x46u, 0x5bu, 0x08u, 0x15u, 0x32u, 0x2fu,
0x59u, 0x44u, 0x63u, 0x7eu, 0x2du, 0x30u, 0x17u, 0x0au,
0xb1u, 0xacu, 0x8bu, 0x96u, 0xc5u, 0xd8u, 0xffu, 0xe2u,
0x26u, 0x3bu, 0x1cu, 0x01u, 0x52u, 0x4fu, 0x68u, 0x75u,
0xceu, 0xd3u, 0xf4u, 0xe9u, 0xbau, 0xa7u, 0x80u, 0x9du,
0xebu, 0xf6u, 0xd1u, 0xccu, 0x9fu, 0x82u, 0xa5u, 0xb8u,
0x03u, 0x1eu, 0x39u, 0x24u, 0x77u, 0x6au, 0x4du, 0x50u,
0xa1u, 0xbcu, 0x9bu, 0x86u, 0xd5u, 0xc8u, 0xefu, 0xf2u,
0x49u, 0x54u, 0x73u, 0x6eu, 0x3du, 0x20u, 0x07u, 0x1au,
0x6cu, 0x71u, 0x56u, 0x4bu, 0x18u, 0x05u, 0x22u, 0x3fu,
0x84u, 0x99u, 0xbeu, 0xa3u, 0xf0u, 0xedu, 0xcau, 0xd7u,
0x35u, 0x28u, 0x0fu, 0x12u, 0x41u, 0x5cu, 0x7bu, 0x66u,
0xddu, 0xc0u, 0xe7u, 0xfau, 0xa9u, 0xb4u, 0x93u, 0x8eu,
0xf8u, 0xe5u, 0xc2u, 0xdfu, 0x8cu, 0x91u, 0xb6u, 0xabu,
0x10u, 0x0du, 0x2au, 0x37u, 0x64u, 0x79u, 0x5eu, 0x43u,
0xb2u, 0xafu, 0x88u, 0x95u, 0xc6u, 0xdbu, 0xfcu, 0xe1u,
0x5au, 0x47u, 0x60u, 0x7du, 0x2eu, 0x33u, 0x14u, 0x09u,
0x7fu, 0x62u, 0x45u, 0x58u, 0x0bu, 0x16u, 0x31u, 0x2cu,
0x97u, 0x8au, 0xadu, 0xb0u, 0xe3u, 0xfeu, 0xd9u, 0xc4u
};
#endif
//volatile uint8_t TouchBoard_RC;
@ -300,9 +231,10 @@ uint8_t RTE_Get_TouchBoard_Right_Sts(void)
uint8_t RTE_Get_TouchBoard_Center_Sts(void)
{
Buttons_SignalType Signal = BUTTON_RELEASE;
if(CurrentPosition == 8)
if(CurrentPosition == 8)
{
Signal = TouchPanel_BtnSignalRead(BTN_CONFIRM);}
Signal = TouchPanel_BtnSignalRead(BTN_CONFIRM);
}
if(Allow_Touch_flag==0)
{
Signal = 0;
@ -317,20 +249,7 @@ uint8_t RTE_Get_TouchBoard_Center_Sts(void)
uint8_t g_VOICE_Touch_And_Below_1N = 0;
uint8_t RTE_Get_TouchBoard_VOICE1_Sts(void)//TJP1
{
#if 0
Buttons_SignalType Signal;
// PanelPress_LevelType Press_Level;
Signal = TouchPanel_BtnSignalRead(BTN_VOICE1);
//Press_Level = TouchPanel_PressLevelRead();
if( TouchButton_is_TouchActive(BTN_VOICE1) == TRUE)//PANEL_PRESS_LEVEL0 == Press_Level &&
{
g_VOICE_Touch_And_Below_1N = 0x01;
}else{
g_VOICE_Touch_And_Below_1N = 0x00;
}
return Signal;
#endif
Buttons_SignalType Signal = BUTTON_RELEASE;
static uint8_t Voice_Zero_Count = 0;
if(CurrentPosition == 1)
@ -619,6 +538,10 @@ uint8_t RTE_Get_X_SNS(void)
X_Update_Flg=1;
rtn_X= (X_Buf[X_Length/2]+X_Buf[X_Length/2-1])/2;
}
if(Allow_Touch_flag==0)
{
rtn_X = 0;
}
if(x_pos==0)
{
rtn_X=0;
@ -721,7 +644,10 @@ uint8_t RTE_Get_Y_SNS(void)
rtn_Y=(Y_Buf[Y_Length/2]+Y_Buf[Y_Length/2-1])/2;
}
if(Allow_Touch_flag==0)
{
rtn_Y = 0;
}
if(y_pos==0)
{
rtn_Y=0;
@ -759,87 +685,103 @@ uint8_t RTE_Get_TouchBoard_XY_Touch_And_Below_1N(void) // 0 false 1 true
uint8_t ret_val = 0;
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;
Two_Finger_Y_data[0]=Touch_Sensor_delta05;
Two_Finger_Y_data[1]=Touch_Sensor_delta06;
Two_Finger_Y_data[2]=Touch_Sensor_delta07;
Two_Finger_Y_data[3]=Touch_Sensor_delta08;
Two_Finger_Y_data[4]=Touch_Sensor_delta09;
Two_Finger_X_data[0]=Touch_Sensor_delta10;
Two_Finger_X_data[1]=Touch_Sensor_delta11;
Two_Finger_X_data[2]=Touch_Sensor_delta12;
Two_Finger_X_data[3]=Touch_Sensor_delta13;
Two_Finger_X_data[4]=Touch_Sensor_delta14;
th_x[0] = qtlib_key_configs_set1[10].channel_threshold;
th_x[1] = qtlib_key_configs_set1[11].channel_threshold;
th_x[2] = qtlib_key_configs_set1[12].channel_threshold;
th_x[3] = qtlib_key_configs_set1[13].channel_threshold;
th_x[4] = qtlib_key_configs_set1[14].channel_threshold;
th_y[0] = qtlib_key_configs_set1[5].channel_threshold;
th_y[1] = qtlib_key_configs_set1[6].channel_threshold;
th_y[2] = qtlib_key_configs_set1[7].channel_threshold;
th_y[3] = qtlib_key_configs_set1[8].channel_threshold;
th_y[4] = qtlib_key_configs_set1[9].channel_threshold;
uint8_t i,m;
Two_Finger_Y_data[0]=Touch_Sensor_delta05;
Two_Finger_Y_data[1]=Touch_Sensor_delta06;
Two_Finger_Y_data[2]=Touch_Sensor_delta07;
Two_Finger_Y_data[3]=Touch_Sensor_delta08;
Two_Finger_Y_data[4]=Touch_Sensor_delta09;
Two_Finger_X_data[0]=Touch_Sensor_delta10;
Two_Finger_X_data[1]=Touch_Sensor_delta11;
Two_Finger_X_data[2]=Touch_Sensor_delta12;
Two_Finger_X_data[3]=Touch_Sensor_delta13;
Two_Finger_X_data[4]=Touch_Sensor_delta14;
Two_Finger_Y_count=0;
for(i=0;i<5;i++)
{
if(Two_Finger_Y_data[i]>25)
{
Two_Finger_Y_count++;
}
}
i=0;
Y_count=0;
while(Two_Finger_Y_data[i++]<=25 && i<5);
i--;
for(;i<5;i++)
{
if(Two_Finger_Y_data[i]<=25)
break;
else
Y_count++;
}
Two_Finger_X_count=0;
for(m=0;m<5;m++)
{
if(Two_Finger_X_data[m]>25)
{
Two_Finger_X_count++;
}
}
m=0;
X_count=0;
while(Two_Finger_X_data[m++]<=25 && m<5);
m--;
for(;m<5;m++)
{
if(Two_Finger_X_data[m]<=25)
break;
else
X_count++;
}
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;
if(g_XY_Touch_And_Below_1N == TRUE || g_VOICE_Touch_And_Below_1N == TRUE ||
g_MENU_Touch_And_Below_1N == TRUE || g_VOL_Touch_And_Below_1N == TRUE)
{
ret_val = 0x01;
}
Two_Finger_Y_count=0;
for(i=0;i<5;i++)
{
if(Two_Finger_Y_data[i]>th_y[i])
{
Two_Finger_Y_count++;
}
}
i=0;
Y_count=0;
while(Two_Finger_Y_data[i]<=th_y[i++] && i<5);
i--;
for(;i<5;i++)
{
if(Two_Finger_Y_data[i]<=th_y[i])
break;
else
Y_count++;
}
Two_Finger_X_count=0;
for(m=0;m<5;m++)
{
if(Two_Finger_X_data[m]>th_x[m])
{
Two_Finger_X_count++;
}
}
m=0;
X_count=0;
while(Two_Finger_X_data[m]<=th_x[m++] && m<5);
m--;
for(;m<5;m++)
{
if(Two_Finger_X_data[m]<=th_x[m])
break;
else
X_count++;
}
if((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
{
}
else
{
Allow_Touch_flag=0;
}
//if((Two_Finger_Y_count<=4 && Y_count == Two_Finger_Y_count)&&(Two_Finger_X_count<=4 && X_count == Two_Finger_X_count))
if(Allow_Touch_flag == 1)
{
//Allow_Touch_flag=1;
if(g_XY_Touch_And_Below_1N == TRUE || g_VOICE_Touch_And_Below_1N == TRUE ||
g_MENU_Touch_And_Below_1N == TRUE || g_VOL_Touch_And_Below_1N == TRUE)
{
ret_val = 0x01;
}
}
else
{
Allow_Touch_flag=0;
}
return ret_val;
}
#endif
@ -1138,31 +1080,61 @@ else
//Output CAN
void RTE_Set_CAN_RiMFctActSgCe(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_RIMFCTACTSGCE, &Value);
}
void RTE_Set_CAN_RiMFctActSgDn(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_RIMFCTACTSGDN, &Value);
}
void RTE_Set_CAN_RiMFctActSgLe(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_RIMFCTACTSGLE, &Value);
}
void RTE_Set_CAN_RiMFctActSgRi(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_RIMFCTACTSGRI, &Value);
}
void RTE_Set_CAN_RiMFctActSgUp(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_RIMFCTACTSGUP, &Value);
}
void RTE_Set_CAN_SteerWhlTouchBdVoice(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDVOICE, &Value);
}
@ -1205,6 +1177,11 @@ void RTE_Set_CAN_DiagcFailrTouchPanSWTRSnsrFltSts(uint8_t Value)
void RTE_Set_CAN_SteerWhlTouchBdMenu(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDMENU, &Value);
}
@ -1213,6 +1190,11 @@ void RTE_Set_CAN_SteerWhlTouchBdMenu(uint8_t Value)
void RTE_Set_CAN_SteerWhlTouchBdDn(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDDN, &Value);
}
@ -1232,16 +1214,11 @@ void RTE_Set_CAN_SteerWhlTouchBdRiCntr(uint8_t Value)
uint8_t g_last_SteerWhlTouchBdSts = BUTTON_RELEASE;
void RTE_Set_CAN_SteerWhlTouchBdRiSteerWhlTouchBdSts(uint8_t Value)
{
//Vibra_force_level=Vibra_PressCheck();
// if((Vibra_force_level == 2 && last_Vibra_force_level != 2) ||
// (Vibra_force_level != 1 && last_Vibra_force_level == 1))
// {
// speeker_Tig_Once(49, SA51024_STRENGTH_LEVEL2);
// }
// g_last_SteerWhlTouchBdSts = Value;
//last_Vibra_force_level=Vibra_force_level;
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDRISTEERWHLTOUCHBDSTS, &Value);
//TouchBoard_Sts=Value;
}
@ -1249,11 +1226,21 @@ void RTE_Set_CAN_SteerWhlTouchBdRiSteerWhlTouchBdSts(uint8_t Value)
void RTE_Set_CAN_SteerWhlTouchBdRiTouchPosnX(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNX, &Value);
// TouchBoard_X=Value;
}
void RTE_Set_CAN_SteerWhlTouchBdRiTouchPosnY(uint8_t Value)
{
uint16_t Press_signal = Get_forcedetect_force_value();
if (Press_signal < 50 || Press_signal >= 2048)
{
Value = 0;
}
InitMessage(SIG_STEERWHLTOUCHBDRITOUCHPOSNY, &Value);
//TouchBoard_Y=Value;
}
@ -1356,11 +1343,13 @@ InitMessage(SIG_SWTRSERNO_UB, &UbInitValue);
#if 1
void RTE_Set_All_Test_Value(void)
void RTE_Set_All_Test_Value(void)//2ms
{
#if 1
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();
@ -1373,37 +1362,68 @@ void RTE_Set_All_Test_Value(void)
//InitMessage(SIG_SWTRPRESSSIGNAL, &Fr08_send_flag);
#endif
#if 0
//extern volatile uint8 Over3N_vibra_req;
//extern volatile uint8 Below1P5N_vibra_req;
uint16_t Press_baseline;
uint16_t Press_signal;
Press_baseline=Get_forcedetect_basline_value();
Press_signal=Get_forcedetect_force_value();
InitMessage(SIG_SWTRPRESSBASELINE, &Below1P5N_vibra_req);//Press_baseline
InitMessage(SIG_SWTRPRESSSIGNAL, &Over3N_vibra_req);
#endif
//uint8_t Two_Finger_X_count = 0;
//uint8_t X_count = 0;
#if 0
uint16_t Press_baseline;
uint16_t Press_signal;
Press_baseline=(uint16_t)Two_Finger_X_count;
Press_signal=(uint16_t)X_count;
//uint16 temp = CurrentPosition;
InitMessage(SIG_SWTRPRESSBASELINE, &Press_baseline);//Press_baseline
InitMessage(SIG_SWTRPRESSSIGNAL, &Press_signal);
#endif
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;
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 < 15; 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 == 15)
{
baseline_error_counter = 0;
}
if (baseline_error_repeat_counter > 0)
{
baseline_error_repeat_counter--;
}

View File

@ -32,9 +32,14 @@ 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

@ -1345,7 +1345,7 @@ static void TouchPanel_XY_Convert(uint8 origin_x, uint8 origin_y)
extern void CanTx(t_can_handler can_handler, bool notif, uint32_t idtp, uint16_t len, t_can_data can_data);
//static uint16_t touch_delay = 500;
extern uint8_t Allow_Touch_flag;
void TouchPanel_MainFunction(void)
{
uint8 index;
@ -1591,8 +1591,44 @@ void TouchPanel_MainFunction(void)
//volatile uint8 g_Trig_Threshold=0;
//volatile uint8 g_Release_Threshold=0;
switch (CurrentPosition)
{
case 1:
g_Trig_Threshold=Button0_GetVoice1_Trig_Threshold();
g_Release_Threshold=Button0_GetVoice1_Release_Threshold();
break;
case 2:
g_Trig_Threshold= Button5_GetMenu1_Trig_Threshold();
g_Release_Threshold= Button5_GetMenu1_Release_Threshold();
break;
case 3:
g_Trig_Threshold=Button3_GetVol1_Trig_Threshold();
g_Release_Threshold= Button3_GetVol1_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_voice == 1 && threshold_select_menu==0 && threshold_select_vol==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_GetVoice1_Trig_Threshold();
@ -1638,7 +1674,7 @@ void TouchPanel_MainFunction(void)
//g_Trig_Threshold=Button10_GetBTN_CONFIRM_Trig_Threshold();
//g_Release_Threshold= Button10_GetBTN_CONFIRM_Release_Threshold();
}
*/
TouchPanel_PressLevel = TouchPanel_PressCheck();
@ -2077,35 +2113,7 @@ void TouchPanel_MainFunction(void)
TouchSurface.Event = TOUCH_PANEL_NONE_EVENT;
}
#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;
}
@ -2127,23 +2135,6 @@ void TouchPanel_MainFunction(void)
#if 0
if (TouchPanel_SurfaceStatus & TOUCH_ACTIVE)
{
K_Vibra_Trig=1;
}
else
{
K_Vibra_Trig=0;
}
#endif
//uint8_t Two_Finger_happen_flag = 0;
//uint8_t Two_Finger_release_count = 0;
//uint8_t Two_Finger_Vibra_req = 0;
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))
)
@ -2159,12 +2150,12 @@ void TouchPanel_MainFunction(void)
}
last_Vibra_force_level=Vibra_force_level;
//(K_Vibra_Trig==1||k_voice_touch_Sts!=0||TouchButton_is_TouchActive(BTN_MENU1)==1||TouchButton_is_TouchActive(BTN_VOL1)==1)&&
if(Vibra_force_level==2)
if(Vibra_force_level==2 )
{
Reach2_flag=1;
}
//TouchButton_is_TouchActive(BTN_MENU1)==1 //TouchButton_is_TouchActive(BTN_VOL1)==1
if((K_Vibra_Trig==1||k_voice_touch_Sts!=0||k_menu_touch_Sts!=0||k_vol_touch_Sts!=0)&&Over3N_vibra_req == 1 )
if((K_Vibra_Trig==1||k_voice_touch_Sts!=0||k_menu_touch_Sts!=0||k_vol_touch_Sts!=0)&&Over3N_vibra_req == 1 && Allow_Touch_flag == 1)
{
Touch_Flag = TOUCH_KET_ON;
speeker_Tig_Once(49, UDS_Vibration_Gain);
@ -2181,12 +2172,9 @@ void TouchPanel_MainFunction(void)
Reach2_flag = 0;
}
#if 0
if((K_Vibra_Trig==1&&Vibra_force_level == 2 && last_Vibra_force_level != 2) ||
(K_Vibra_Trig==1&&Vibra_force_level != 1 && last_Vibra_force_level == 1))
if (CurrentPosition == 0xff)
{
speeker_Tig_Once(49, SA51024_STRENGTH_LEVEL0);
Allow_Touch_flag = 1;
}
last_Vibra_force_level=Vibra_force_level;
#endif
}

View File

@ -118,63 +118,63 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#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_64 \
X_NONE, Y(15), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#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_64 \
X_NONE, Y(16), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (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_4), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(17), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#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_64 \
X_NONE, Y(30), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#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_64 \
X_NONE, Y(31), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_4), (uint8_t)FILTER_LEVEL_32 \
}
#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_64 \
X_NONE, Y(24), 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(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_7_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_8_PARAMS \
{ \
X_NONE, Y(2), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_64 \
X_NONE, Y(2), 0,(uint8_t)PRSC_DIV_SEL_8, NODE_GAIN(GAIN_1, GAIN_8), (uint8_t)FILTER_LEVEL_32 \
}
#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_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_10_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_11_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_12_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_13_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_14_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 \
}
/**********************************************************/
@ -192,7 +192,7 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define KEY_0_PARAMS \
{ \
72u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
70u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
}
@ -204,79 +204,79 @@ SUBSTITUTE GOODS, TECHNOLOGY, SERVICES, OR ANY CLAIMS BY THIRD PARTIES
#define KEY_2_PARAMS \
{ \
72u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
70u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
}
#define KEY_3_PARAMS \
{ \
72u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
71u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
}
#define KEY_4_PARAMS \
{ \
72u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
71u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_2 \
}
#define KEY_5_PARAMS \
{ \
56u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
74u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_6_PARAMS \
{ \
56u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
64u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_7_PARAMS \
{ \
56u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
57u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_8_PARAMS \
{ \
56u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
62u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_9_PARAMS \
{ \
56u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
59u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_10_PARAMS \
{ \
48u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
60u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_11_PARAMS \
{ \
48u, (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 \
{ \
48u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
50u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_13_PARAMS \
{ \
48u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
52u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
#define KEY_14_PARAMS \
{ \
48u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
58u, (uint8_t)HYST_12_5, (uint8_t)AKS_GROUP_1 \
}
@ -291,7 +291,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
@ -332,7 +332,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
/**********************************************************/
/***************** Slider/Wheel Parameters ****************/
@ -408,7 +408,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
/**********************************************************/