MTK中触摸屏校准过程中的代码,有些看不懂了,各位大侠能否说明一下(下面的蓝色部分):
kal_bool touch_panel_check_cali_stage1(void)
{
kal_int32 x_adc_range, x_coord_range, x_adc_high, x_adc_low;
kal_int32 y_adc_range, y_coord_range, y_adc_high, y_adc_low;
/*use the relative ADC difference*/
/*X ADC Diff*/
if(cali_point_adc[1].x>=cali_point_adc[0].x)
x_adc_range=cali_point_adc[1].x-cali_point_adc[0].x;
else
x_adc_range=cali_point_adc[0].x-cali_point_adc[1].x;
/*Y ADC Diff*/
if(cali_point_adc[1].y>=cali_point_adc[0].y)
y_adc_range=cali_point_adc[1].y-cali_point_adc[0].y;
else
y_adc_range=cali_point_adc[0].y-cali_point_adc[1].y;
/*X Coord Diff*/
if(cali_point[1].x>=cali_point[0].x)
x_coord_range=cali_point[1].x-cali_point[0].x;
else
x_coord_range=cali_point[0].x-cali_point[1].x;
/*Y Coord Diff*/
if(cali_point[1].y>=cali_point[0].y)
y_coord_range=cali_point[1].y-cali_point[0].y;
else
y_coord_range=cali_point[0].y-cali_point[1].y;
x_adc_high=x_coord_range*(ADC_X_END-ADC_X_START)*150/(SCREEN_X_END-SCREEN_X_START)/100;
x_adc_low=x_coord_range*(ADC_X_END-ADC_X_START)*50/(SCREEN_X_END-SCREEN_X_START)/100;
y_adc_high=y_coord_range*(ADC_Y_END-ADC_Y_START)*150/(SCREEN_Y_END-SCREEN_Y_START)/100;
y_adc_low=y_coord_range*(ADC_Y_END-ADC_Y_START)*50/(SCREEN_Y_END-SCREEN_Y_START)/100; [/COLOR]
#ifdef TOUCH_PANEL_DEBUG
dbg_printWithTime("x adc diff=%d high=%d low=%d\r\n",x_adc_range,x_adc_high,x_adc_low );
dbg_printWithTime("y adc diff=%d high=%d low=%d\r\n",y_adc_range,y_adc_high,y_adc_low );
#endif
if((x_adc_range<X_ADC_LOW) (x_adc_range ||>x_adc_high))
return KAL_FALSE;
if((y_adc_range<Y_ADC_LOW) || (y_adc_range>y_adc_high))
return KAL_FALSE;
return KAL_TRUE;
}
上面的蓝色部分没看明白,哪位能说明一下,还有就是(x_offset和y_offset)指的是基准坐标还是……?
[em01][em01] |