#define ADS7843_PIN_CS LATFbits.LATF7 // Salida
#define ADS7843_PIN_BUSY PORTFbits.RF3 // Entrada
#define ADS7843_PIN_IRQ PORTDbits.RD4 // Entrada
#define ADS7843_PIN_CLK LATAbits.LATA4 // Salida
#define ADS7843_PIN_SDO PORTFbits.RF2 // Entrada
#define ADS7843_PIN_SDI LATFbits.LATF6 // Salida
#define ADS7843_TRIS_CS TRISFbits.TRISF7
#define ADS7843_TRIS_BUSY TRISFbits.TRISF3
#define ADS7843_TRIS_IRQ TRISDbits.TRISD4
#define ADS7843_TRIS_CLK TRISAbits.TRISA4
#define ADS7843_TRIS_SDO TRISFbits.TRISF2
#define ADS7843_TRIS_SDI TRISFbits.TRISF6
#define __delay_CLK_ADS7843() {Nop();Nop();} // 200nS --> (5 Mips, PIC24)
//#define ADS7843_USE_12BITS
#if defined(ADS7843_USE_12BITS)
#define ADS7843_READ_X 0b10010000 // IRQ Enable
#define ADS7843_READ_Y 0b11010000
typedef UINT16 UINT_COORDxy;
#else
#define ADS7843_READ_X 0b10011000 // IRQ Enable
#define ADS7843_READ_Y 0b11011000
typedef UINT8 UINT_COORDxy;
#endif
#define PIN_INPUT 1
#define PIN_OUTPUT 0
typedef struct{
UINT_COORDxy x;
UINT_COORDxy y;
// ...
}TOUCH_DATA;
void vInitADS7843(void);
UINT_COORDxy ADS7843WriteAndReadData(UINT8);
void vTestTouchPanel(TOUCH_DATA *Data);