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

📄 touch_scr.h

📁 NXP LPC系列AMR7的开发程序源码(LCD
💻 H
字号:
/*************************************************************************
 *
 *    Used with ICCARM and AARM.
 *
 *    (c) Copyright IAR Systems 2006
 *
 *    File name   : touch_scr.h
 *    Description : Prototypes for the touch screen driver
 *
 *    History :
 *    1. Date        : 5 May 2006
 *       Author      : Stanimir Bonev
 *       Description : Create
 *
 *    $Revision: 6526 $
 **************************************************************************/
#include "includes.h"

#ifndef __TOUCH_SCR_H
#define __TOUCH_SCR_H

// ADC clk frequency must be between 200kHz and 2 MHz
#define ADC_CLK_DIV         4

// Define Setup delays [us]
#define IDLY_DLY            100
#define PRE_CHRAGE_DLY      50
#define TOUCH_DET_DLY       50
#define X_MEAS_DLY          50
#define Y_MEAS_DLY          50


// Pen detect threshold
#define TOUCH_THRESHOLD     (1024*2/3)      // 2/3

// ADC Frequency
#define ADC_FREQ            (MAIN_OSC_FREQ/(1UL << ADC_CLK_DIV))

// Number of Conversions in Sequence
#define TOUCH_MEASURE_STEPS 12

// Define High Word bitfields
#define RMP_REF_P           0
#define RMP_AN0             1
#define RMP_AN2             2
#define RMP_AN8             3

#define IMN_REF_N           0
#define IMN_GND             4

#define PMN_AN0             0x00
#define PMN_AN1             0x08
#define PMN_AN2             0x10
#define PMN_AN3             0x18
#define PMN_AN4             0x20
#define PMN_AN6             0x30
#define PMN_AN8             0x40
#define PMN_AN9             0x48
#define PMN_REF_N           0x50

// Delay [us]
#define ADC_SetTime(Setup) \
  (((ADC_FREQ*Setup)/1000000) << 7)

// Define Low Word bitfields
#define RMN_VREF_N          0
#define RMN_AN1             1
#define RMN_AN3             2
#define RMN_AN9             3

#define AN0_VDDA_STRONG    (1UL << 2 )
#define AN1_VDDA_STRONG    (1UL << 3 )
#define AN1_GND_STRONG     (1UL << 4 )
#define AN2_VDDA_STRONG    (1UL << 5 )
#define AN2_GND_STRONG     (1UL << 6 )
#define AN3_GND_STRONG     (1UL << 7 )
#define AN4_GND_STRONG     (1UL << 8 )
#define AN0_VDDA_WEAK      (1UL << 12)
#define AN4_VDDA_WEAK      (1UL << 13)

typedef enum
{
  TOUCH_SCR_IDLE = 0, TOUCH_SCR_PEN_DETECTION,
} TouchScrState_t;

typedef struct
{
  Int16U LowWord;
  Int16U HighWord;
} AdcCtrlWords_t;

// display upper left corner
#define LEFT_UP_X         70
#define LEFT_UP_Y         70

// display down right corner
#define RIGHT_UP_X        920
#define RIGHT_UP_Y        920

typedef union
{
  Int32U XY;
  struct
  {
    Int16U  X;
    Int16U  Y;
  };
} ToushRes_t;

/*************************************************************************
 * Function Name: TouchScrEOC_Handler
 * Parameters: none
 *
 * Return: none
 *
 * Description: Touchscreen end of conversion interrupt handler
 *
 *************************************************************************/
void TouchScrEOC_Handler (void);

/*************************************************************************
 * Function Name: TouchScrPT_Handler
 * Parameters: none
 *
 * Return: none
 *
 * Description: Touchscreen Pen interrupt handler
 *
 *************************************************************************/
void TouchScrPen_Handler (void);

/*************************************************************************
 * Function Name: TouchScrInit
 * Parameters: VicIrqSlots_t PenTouchSlot,VicIrqSlots_t EndOfConvSlot
 *
 * Return: none
 *
 * Description: Init Touch screen sequence
 *
 *************************************************************************/
void TouchScrInit (VicIrqSlots_t PenTouchSlot,VicIrqSlots_t EndOfConvSlot);

/*************************************************************************
 * Function Name: TouchScrStartMesure
 * Parameters: none
 *
 * Return: none
 *
 * Description: Starting the measurement
 *
 *************************************************************************/
void TouchScrStartMesure (void);

/*************************************************************************
 * Function Name: TouchScrGetStatus
 * Parameters: ToushRes_t * pData X,Y data
 *
 * Return: Int32U 0 - untouched
 *                1 - touched
 *
 * Description: Return current state of the touchscreen
 *
 *************************************************************************/
Boolean TouchScrGetStatus (ToushRes_t * pData);

#endif // __TOUCH_SCR_H

⌨️ 快捷键说明

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