⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 touch_panel_custom.c

📁 MTK6225
💻 C
📖 第 1 页 / 共 2 页
字号:
/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE. 
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/

/*****************************************************************************
 *
 * Filename:
 * ---------
 *    keypad_def.c
 *
 * Project:
 * --------
 *   Maui_Software
 *
 * Description:
 * ------------
 *   This file is defined for keypad table
 *
 * Author:
 * -------
 * -------
 *
 *============================================================================
 *             HISTORY
 * Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *------------------------------------------------------------------------------
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 *
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 * removed!
 *
 *------------------------------------------------------------------------------
 * Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!!
 *============================================================================
 ****************************************************************************/
#if defined(TOUCH_PANEL_SUPPORT) || defined(HAND_WRITING)
#include "drv_comm.h"
#include "eint.h"
#include "touch_panel_custom.h"
#include "touch_panel.h"
#include    "touch_panel_spi.h"  ///Yh888_6225_V004.B&N002 
//#include    "touch_panel_i2c.h"  //Yh888_6225_V004.B&N001 //qsh

TouchPanel_custom_data_struct  tp_custom_data_def = 
{          
   /*ADC*/
       TOUCH_PANEL_ADC_X_START,   //0
	TOUCH_PANEL_ADC_X_END,     //3968
	TOUCH_PANEL_ADC_Y_START, //0
	TOUCH_PANEL_ADC_Y_END,     //5264
	/*Coord.*/
	TOUCH_PANEL_COORD_X_START,//0
	TOUCH_PANEL_COORD_X_END,   //239
	TOUCH_PANEL_COORD_Y_START, //0
	TOUCH_PANEL_COORD_Y_END,//339
	/*eint level*/
	TOUCH_PANEL_EINT_DOWN_LEVEL   
};

//extern unsigned char gCustomTouchPanelType;
unsigned char gCustomTouchPanelType=1; //Eric Huang 2007/12/19
#define __TOUCH_PANEL_X_COORDINATE_REVERSED__
#define __TOUCH_PANEL_Y_COORDINATE_REVERSED__

#ifdef TOUCH_PANEL_I2C_SUPPORT  ////Yh888_6225_V004.B&N002
#define __TOUCH_PANEL_XY_COORDINATE_REVERSED__
//#include "touch_panel_i2c_extern.h"
#endif

extern I2C_READ_ALL_DATA_TYPE g_i2c_tpReadalldata;//qsh
extern kal_uint16      TP_I2C_X ;
extern kal_uint16      TP_I2C_Y ;
extern kal_uint8	       finger_num;

extern kal_uint8	      tp_tapcode ;
extern kal_uint8	      tp_zoom ;
extern kal_uint8	      tp_flick ;
extern kal_uint8	      tp_press;


void tp_read_adc(kal_int16 *x, kal_int16 *y)
{
char str[100];
   kal_uint8 command=0, retry;        
   kal_int16 temp_x=0, temp_y=0, diff_x=0, diff_y=0;
   kal_uint16 temp;
  // for(retry=0;retry<1;retry++)//qsh
   {		
   	   i2c_tp_ReadAllData() ;
	
       if(finger_num)
	   {
	      *x = TP_I2C_X;
	     *y = TP_I2C_Y;
        }
   	}

}
#ifdef TOUCH_PANEL_PRESSURE
kal_bool tp_pressure_check(void)
{
   
   kal_uint8 command=0, retry;        
   kal_int16 x, z1, z2;
   kal_uint32 pressure;
   
   for(retry=0;retry<TOUCH_PANEL_RETRY;retry++)
   {
      /*X ADC*/
      command=TOUCH_PANEL_START_BIT|TOUCH_PANEL_Y_PLUS|TOUCH_PANEL_12BIT_SAMPLE|
           TOUCH_PANEL_SINGLE_MODE;
      serial_write_data(command);
      x=serial_read_data();   
      //kal_prompt_trace(MOD_TP_TASK, "pressure x value: %d", x);

      /*Z1 ADC*/
      command=TOUCH_PANEL_START_BIT|TOUCH_PANEL_Z1_POS|TOUCH_PANEL_12BIT_SAMPLE|
           TOUCH_PANEL_DIFF_MODE;
      serial_write_data(command);
      z1=serial_read_data();   
      //kal_prompt_trace(MOD_TP_TASK, "pressure z1 value: %d", z1);

      /*Z2 ADC*/
      command=TOUCH_PANEL_START_BIT|TOUCH_PANEL_Z2_POS|TOUCH_PANEL_12BIT_SAMPLE|
           TOUCH_PANEL_DIFF_MODE;
      serial_write_data(command);
      z2=serial_read_data();
      //kal_prompt_trace(MOD_TP_TASK, "pressure z2 value: %d", z2);
      if((z1 > 0) && (z2 > z1))
      {
         pressure = (x*(z2-z1)/z1) >> 2; /* Rx*x/4096*(z2/z1 - 1), assume Rx=1024 */
         //kal_prompt_trace(MOD_TP_TASK, "pressure: %d", pressure);
         //if (pressure > TOUCH_PRESSURE_THRESHOLD2)
           // kal_prompt_trace(MOD_TP_TASK, "pressure is above %d. value: %d", TOUCH_PRESSURE_THRESHOLD2, pressure);
         if ((pressure > TOUCH_PRESSURE_THRESHOLD_HIGH) || (pressure <= TOUCH_PRESSURE_THRESHOLD_LOW))
            return KAL_FALSE; 
         else
            return KAL_TRUE; 
      }
   }
   //kal_prompt_trace(MOD_TP_TASK, "pressure: 0 (no value)");
   return KAL_FALSE;
}
#endif /*TOUCH_PANEL_PRESSURE*/
#ifdef TOUCH_PANEL_I2C_SUPPORT   ////Yh888_6225_V004.B&N002
//#include "touch_panel_i2c_extern.h"
extern kal_uint8  i2c_tp_readflag;
#endif
//extern kal_bool    touch_panel_state;
void tp_irq_enable(kal_bool on)
{
#ifdef TOUCH_PANEL_I2C_SUPPORT  ///////Yh888_6225_V004.B&N002
   if(on==KAL_TRUE)
   {

	i2c_tp_readflag = 1;
 //touch_panel_state =0;
 //EINT_Set_Polarity(TP.eint_chan,touch_panel_state);
   
	
   }
   else
   {

	i2c_tp_readflag = 1;
	//touch_panel_state =1;
  //   EINT_Set_Polarity(TP.eint_chan,touch_panel_state);
   }
#else
   kal_uint8 command=0;   
   kal_uint32 savedMask;
   //savedMask = SaveAndSetIRQMask();
   if(on==KAL_TRUE)
   {
      command=TOUCH_PANEL_START_BIT|TOUCH_PANEL_PWD_ENBLE;               
   }   
   else
   {
      command=TOUCH_PANEL_START_BIT|TOUCH_PANEL_IRQ_DISABLE;
   }  
   serial_write_data(command);
   serial_read_data(); 
   //RestoreIRQMask(savedMask);
#endif
}    

TouchPanel_custom_data_struct *tp_Get_Data(void) 
{
   return (&tp_custom_data_def);
}      
TouchPanel_customize_function_struct tp_custom_func=
{
     tp_Get_Data,
     tp_read_adc,
#ifdef TOUCH_PANEL_PRESSURE
     tp_pressure_check,
#endif
     tp_irq_enable
};            
TouchPanel_customize_function_struct *tp_GetFunc(void)
{
   return (&tp_custom_func);  
}   







/*************************************************************************
 * [Set the config for MMI handwriting pad is enabled]
 *************************************************************************/
#include "MMI_features.h"
#ifdef __MMI_HANDWRITING_PAD__
#include "TouchScreenGprot.h" /* get tp_area_struct declaraction */
#include "kbd_table.h"



/*************************************************************************
 * [Get the calibration point]
 *************************************************************************/
#define NUM_TP_CALIBRATION_POINTS 3
const mmi_pen_point_struct tp_calibration_point[NUM_TP_CALIBRATION_POINTS]={
      {TOUCH_PANEL_CALIBRATION_X_1, TOUCH_PANEL_CALIBRATION_Y_1}, /* top-left point */
      {TOUCH_PANEL_CALIBRATION_X_2, TOUCH_PANEL_CALIBRATION_Y_2}, /* bottom-right point */
      {TOUCH_PANEL_CALIBRATION_X_3, TOUCH_PANEL_CALIBRATION_Y_3}  /* the thrid point */
   };


/*************************************************************************
 * [handwriting pad information setting]
 * Define the coordinate for control areas
 * Below is the reference setting ...
 *************************************************************************/
#if defined(__MMI_MAINLCD_176X220__)
#define TP_SCREEN_ROW_H		(9)
#define TP_SCREEN_ROW_0		(TOUCH_PANEL_COORD_Y_START)
#define TP_SCREEN_ROW_1		(TOUCH_PANEL_COORD_Y_START+10)
#define TP_SCREEN_ROW_2		(TOUCH_PANEL_COORD_Y_START+20)
#define TP_SCREEN_ROW_3		(TOUCH_PANEL_COORD_Y_START+30)
#define TP_SCREEN_ROW_4		(TOUCH_PANEL_COORD_Y_START+40)
#define TP_SCREEN_ROW_5		(TOUCH_PANEL_COORD_Y_START+50)
#define TP_SCREEN_ROW_6		(TOUCH_PANEL_COORD_Y_START+60)
#define TP_SCREEN_ROW_7		(TOUCH_PANEL_COORD_Y_START+70)
#define TP_SCREEN_ROW_8		(TOUCH_PANEL_COORD_Y_START+80)
#define TP_SCREEN_ROW_9		(TOUCH_PANEL_COORD_Y_START+90)

#define TP_SCREEN_COL_W		(57)
#define TP_SCREEN_COL_0		(TOUCH_PANEL_COORD_X_START)
#define TP_SCREEN_COL_1		(TOUCH_PANEL_COORD_X_START+58)
#define TP_SCREEN_COL_2		(TOUCH_PANEL_COORD_X_START+116)
#define TP_SCREEN_COL_3		(TOUCH_PANEL_COORD_X_START+174)

#elif defined(__MMI_MAINLCD_240X320__)

#define TP_SCREEN_ROW_H		(19)
#define TP_SCREEN_ROW_0		(TOUCH_PANEL_COORD_Y_START)
#define TP_SCREEN_ROW_1		(TOUCH_PANEL_COORD_Y_START+20)
#define TP_SCREEN_ROW_2		(TOUCH_PANEL_COORD_Y_START+40)
#define TP_SCREEN_ROW_3		(TOUCH_PANEL_COORD_Y_START+60)
#define TP_SCREEN_ROW_4		(TOUCH_PANEL_COORD_Y_START+80)
#define TP_SCREEN_ROW_5		(TOUCH_PANEL_COORD_Y_START+100)
#define TP_SCREEN_ROW_6		(TOUCH_PANEL_COORD_Y_START+120)
#define TP_SCREEN_ROW_7		(TOUCH_PANEL_COORD_Y_START+140)
#define TP_SCREEN_ROW_8		(TOUCH_PANEL_COORD_Y_START+160)
#define TP_SCREEN_ROW_9		(TOUCH_PANEL_COORD_Y_START+180)

#define TP_SCREEN_COL_W		(79)
#define TP_SCREEN_COL_0		(TOUCH_PANEL_COORD_X_START)
#define TP_SCREEN_COL_1		(TOUCH_PANEL_COORD_X_START+80)
#define TP_SCREEN_COL_2		(TOUCH_PANEL_COORD_X_START+160)
#define TP_SCREEN_COL_3		(TOUCH_PANEL_COORD_X_START+240)

#endif


/* If the customer want to handle the pen events, register the function handler here. */

void custom_dummy_pen_hdlr(mmi_pen_point_struct pos)
{
}


mmi_pen_hdlr custom_extra_func_hdlr[MMI_PEN_EVENT_TYPE_MAX]={
                        	NULL, /* MMI_PEN_EVENT_DOWN, */
                        	NULL, /* MMI_PEN_EVENT_UP, */
                        	NULL, /* MMI_PEN_EVENT_LONG_TAP, */
                        	NULL, /* MMI_PEN_EVENT_REPEAT, */
                        	NULL, /* MMI_PEN_EVENT_MOVE, */
                        	NULL,  /* MMI_PEN_EVENT_ABORT, */ 
                        };

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -