小忍者项目相关文件上传
This commit is contained in:
120
MXC-A36/xrz/lv_drivers/indev/AD_touch.h
Normal file
120
MXC-A36/xrz/lv_drivers/indev/AD_touch.h
Normal file
@ -0,0 +1,120 @@
|
||||
/**
|
||||
* @file AD_touch.h
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef AD_TOUCH_H
|
||||
#define AD_TOUCH_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/*********************
|
||||
* INCLUDES
|
||||
*********************/
|
||||
#ifndef LV_DRV_NO_CONF
|
||||
#ifdef LV_CONF_INCLUDE_SIMPLE
|
||||
#include "lv_drv_conf.h"
|
||||
#else
|
||||
#include "../../lv_drv_conf.h"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if USE_AD_TOUCH
|
||||
|
||||
#ifdef LV_LVGL_H_INCLUDE_SIMPLE
|
||||
#include "lvgl.h"
|
||||
#else
|
||||
#include "lvgl/lvgl.h"
|
||||
#endif
|
||||
|
||||
#define _SUPPRESS_PLIB_WARNING
|
||||
#include <plib.h>
|
||||
|
||||
#include "GenericTypeDefs.h"
|
||||
|
||||
#define DISP_ORIENTATION 0
|
||||
#define DISP_HOR_RESOLUTION 320
|
||||
#define DISP_VER_RESOLUTION 240
|
||||
|
||||
/*GetMaxX Macro*/
|
||||
#if (DISP_ORIENTATION == 90) || (DISP_ORIENTATION == 270)
|
||||
#define GetMaxX() (DISP_VER_RESOLUTION - 1)
|
||||
#elif (DISP_ORIENTATION == 0) || (DISP_ORIENTATION == 180)
|
||||
#define GetMaxX() (DISP_HOR_RESOLUTION - 1)
|
||||
#endif
|
||||
|
||||
/*GetMaxY Macro*/
|
||||
#if (DISP_ORIENTATION == 90) || (DISP_ORIENTATION == 270)
|
||||
#define GetMaxY() (DISP_HOR_RESOLUTION - 1)
|
||||
#elif (DISP_ORIENTATION == 0) || (DISP_ORIENTATION == 180)
|
||||
#define GetMaxY() (DISP_VER_RESOLUTION - 1)
|
||||
#endif
|
||||
|
||||
/*********************************************************************
|
||||
* HARDWARE PROFILE FOR THE RESISTIVE TOUCHSCREEN
|
||||
*********************************************************************/
|
||||
|
||||
#define TOUCH_ADC_INPUT_SEL AD1CHS
|
||||
|
||||
// ADC Sample Start
|
||||
#define TOUCH_ADC_START AD1CON1bits.SAMP
|
||||
|
||||
// ADC Status
|
||||
#define TOUCH_ADC_DONE AD1CON1bits.DONE
|
||||
|
||||
#define RESISTIVETOUCH_ANALOG 1
|
||||
#define RESISTIVETOUCH_DIGITAL 0
|
||||
|
||||
// ADC channel constants
|
||||
#define ADC_XPOS ADC_CH0_POS_SAMPLEA_AN12
|
||||
#define ADC_YPOS ADC_CH0_POS_SAMPLEA_AN13
|
||||
|
||||
// ADC Port Control Bits
|
||||
#define ADPCFG_XPOS AD1PCFGbits.PCFG12 //XR
|
||||
#define ADPCFG_YPOS AD1PCFGbits.PCFG13 //YD
|
||||
|
||||
// X port definitions
|
||||
#define ResistiveTouchScreen_XPlus_Drive_High() LATBbits.LATB12 = 1
|
||||
#define ResistiveTouchScreen_XPlus_Drive_Low() LATBbits.LATB12 = 0 //LAT_XPOS
|
||||
#define ResistiveTouchScreen_XPlus_Config_As_Input() TRISBbits.TRISB12 = 1 //TRIS_XPOS
|
||||
#define ResistiveTouchScreen_XPlus_Config_As_Output() TRISBbits.TRISB12 = 0
|
||||
|
||||
#define ResistiveTouchScreen_XMinus_Drive_High() LATFbits.LATF0 = 1
|
||||
#define ResistiveTouchScreen_XMinus_Drive_Low() LATFbits.LATF0 = 0 //LAT_XNEG
|
||||
#define ResistiveTouchScreen_XMinus_Config_As_Input() TRISFbits.TRISF0 = 1 //TRIS_XNEG
|
||||
#define ResistiveTouchScreen_XMinus_Config_As_Output() TRISFbits.TRISF0 = 0
|
||||
|
||||
// Y port definitions
|
||||
#define ResistiveTouchScreen_YPlus_Drive_High() LATBbits.LATB13 = 1
|
||||
#define ResistiveTouchScreen_YPlus_Drive_Low() LATBbits.LATB13 = 0 //LAT_YPOS
|
||||
#define ResistiveTouchScreen_YPlus_Config_As_Input() TRISBbits.TRISB13 = 1 //TRIS_YPOS
|
||||
#define ResistiveTouchScreen_YPlus_Config_As_Output() TRISBbits.TRISB13 = 0
|
||||
|
||||
#define ResistiveTouchScreen_YMinus_Drive_High() LATFbits.LATF1 = 1
|
||||
#define ResistiveTouchScreen_YMinus_Drive_Low() LATFbits.LATF1 = 0 //LAT_YNEG
|
||||
#define ResistiveTouchScreen_YMinus_Config_As_Input() TRISFbits.TRISF1 = 1 //TRIS_YNEG
|
||||
#define ResistiveTouchScreen_YMinus_Config_As_Output() TRISFbits.TRISF1 = 0
|
||||
|
||||
// Default calibration points
|
||||
#define TOUCHCAL_ULX 0x0348
|
||||
#define TOUCHCAL_ULY 0x00CC
|
||||
#define TOUCHCAL_URX 0x00D2
|
||||
#define TOUCHCAL_URY 0x00CE
|
||||
#define TOUCHCAL_LLX 0x034D
|
||||
#define TOUCHCAL_LLY 0x0335
|
||||
#define TOUCHCAL_LRX 0x00D6
|
||||
#define TOUCHCAL_LRY 0x032D
|
||||
|
||||
void ad_touch_init(void);
|
||||
bool ad_touch_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);
|
||||
int16_t ad_touch_handler(void);
|
||||
|
||||
#endif /* USE_AD_TOUCH */
|
||||
|
||||
#ifdef __cplusplus
|
||||
} /* extern "C" */
|
||||
#endif
|
||||
|
||||
#endif /* AD_TOUCH_H */
|
Reference in New Issue
Block a user