#ifndef _RA8875_REGISTERS_H #define _RA8875_REGISTERS_H #define CENTER 9998 #define ARC_ANGLE_MAX 360 #define ARC_ANGLE_OFFSET -90 #define ANGLE_OFFSET -90 #define RA8875_PWRR 0x01//Power and Display Control Register #define RA8875_PWRR_DISPON 0x80 #define RA8875_PWRR_DISPOFF 0x00 #define RA8875_PWRR_SLEEP 0x02 #define RA8875_PWRR_NORMAL 0x00 #define RA8875_PWRR_SOFTRESET 0x01 #define RA8875_MRWC 0x02//Memory Read/Write Command #define RA8875_CMDWRITE 0x80 #define RA8875_CMDREAD 0xC0 #define RA8875_DATAWRITE 0x00 #define RA8875_DATAREAD 0x40 #define RA8875_STATREG 0x40 #define RA8875_PCSR 0x04//Pixel Clock Setting Register #define RA8875_SROC 0x05//Serial Flash/ROM Configuration #define RA8875_SFCLR 0x06//Serial Flash/ROM CLK #define EXTROM_SFCLSPEED 0b00000011// /4 0b00000010 /2 #define RA8875_SYSR 0x10//System Configuration Register #define RA8875_HDWR 0x14//LCD Horizontal Display Width Register #define RA8875_HNDFTR 0x15//Horizontal Non-Display Period Fine Tuning Option Register #define RA8875_HNDR 0x16//LCD Horizontal Non-Display Period Register #define RA8875_HSTR 0x17//HSYNC Start Position Register #define RA8875_HPWR 0x18//HSYNC Pulse Width Register #define RA8875_VDHR0 0x19//LCD Vertical Display Height Register 0 //#define RA8875_VDHR1 0x1A//LCD Vertical Display Height Register 1 #define RA8875_VNDR0 0x1B//LCD Vertical Non-Display Period Register 0 //#define RA8875_VNDR1 0x1C//LCD Vertical Non-Display Period Register 1 #define RA8875_VSTR0 0x1D//VSYNC Start Position Register 0 //#define RA8875_VSTR1 0x1E//VSYNC Start Position Register 1 #define RA8875_VPWR 0x1F//VSYNC Pulse Width Register #define RA8875_DPCR 0x20//Display Configuration Register #define RA8875_FNCR0 0x21//Font Control Register 0 #define RA8875_FNCR1 0x22//Font Control Register 1 #define RA8875_CGSR 0x23//CGRAM Select Register #define RA8875_HOFS0 0x24//Horizontal Scroll Offset Register 0 #define RA8875_HOFS1 0x25//Horizontal Scroll Offset Register 1 #define RA8875_VOFS0 0x26//Vertical Scroll Offset Register 0 #define RA8875_VOFS1 0x27//Vertical Scroll Offset Register 1 #define RA8875_FLDR 0x29//Font Line Distance Setting Register #define RA8875_F_CURXL 0x2A//Font Write Cursor Horizontal Position Register 0 #define RA8875_F_CURXH 0x2B//Font Write Cursor Horizontal Position Register 1 #define RA8875_F_CURYL 0x2C//Font Write Cursor Vertical Position Register 0 #define RA8875_F_CURYH 0x2D//Font Write Cursor Vertical Position Register 1 #define RA8875_FWTSET 0x2E//Font Write Type Setting Register #define RA8875_SFRSET 0x2F//Serial Font ROM Setting #define RA8875_HSAW0 0x30//Horizontal Start Point 0 of Active Window //#define RA8875_HSAW1 0x31//Horizontal Start Point 1 of Active Window #define RA8875_VSAW0 0x32//Vertical Start Point 0 of Active Window //#define RA8875_VSAW1 0x33//Vertical Start Point 1 of Active Window #define RA8875_HEAW0 0x34//Horizontal End Point 0 of Active Window //#define RA8875_HEAW1 0x35//Horizontal End Point 1 of Active Window #define RA8875_VEAW0 0x36//Vertical End Point of Active Window 0 //#define RA8875_VEAW1 0x37//Vertical End Point of Active Window 1 #define RA8875_HSSW0 0x38//Horizontal Start Point 0 of Scroll Window //#define RA8875_HSSW1 0x39//Horizontal Start Point 1 of Scroll Window #define RA8875_VSSW0 0x3A//Vertical Start Point 0 of Scroll Window //#define RA8875_VSSW1 0x3B//Vertical Start Point 1 of Scroll Window #define RA8875_HESW0 0x3C//Horizontal End Point 0 of Scroll Window //#define RA8875_HESW1 0x3D//Horizontal End Point 1 of Scroll Window #define RA8875_VESW0 0x3E//Vertical End Point 0 of Scroll Window //#define RA8875_VESW1 0x3F//Vertical End Point 1 of Scroll Window #define RA8875_MWCR0 0x40//Memory Write Control Register 0 #define RA8875_MWCR1 0x41//Memory Write Control Register 1 #define RA8875_BTCR 0x44//Blink Time Control Register #define RA8875_MRCD 0x45//Memory Read Cursor Direction #define RA8875_CURH0 0x46//Memory Write Cursor Horizontal Position Register 0 //#define RA8875_CURH1 0x47//Memory Write Cursor Horizontal Position Register 1 #define RA8875_CURV0 0x48//Memory Write Cursor Vertical Position Register 0 //#define RA8875_CURV1 0x49//Memory Write Cursor Vertical Position Register 1 //#define RA8875_RCURH0 0x4A//Memory Read Cursor Horizontal Position Register 0 //#define RA8875_RCURH1 0x4B//Memory Read Cursor Horizontal Position Register 1 //#define RA8875_RCURV0 0x4C//Memory Read Cursor Vertical Position Register 0 //#define RA8875_RCURV1 0x4D//Memory Read Cursor Vertical Position Register 1 #define RA8875_CURHS 0x4E//Font Write Cursor and Memory Write Cursor Horizontal Size Register #define RA8875_CURVS 0x4F//Font Write Cursor Vertical Size Register #define RA8875_BECR0 0x50//BTE Function Control Register 0 #define RA8875_BECR1 0x51//BTE Function Control Register 1 #define RA8875_LTPR0 0x52//Layer Transparency Register 0 #define RA8875_LTPR1 0x53//Layer Transparency Register 1 #define RA8875_HSBE0 0x54//Horizontal Source Point 0 of BTE //#define RA8875_HSBE1 0x55//Horizontal Source Point 1 of BTE #define RA8875_VSBE0 0x56//Vertical Source Point 0 of BTE //#define RA8875_VSBE1 0x57//Vertical Source Point 1 of BTE #define RA8875_HDBE0 0x58//Horizontal Destination Point 0 of BTE //#define RA8875_HDBE1 0x59//Horizontal Destination Point 1 of BTE #define RA8875_VDBE0 0x5A//Vertical Destination Point 0 of BTE //#define RA8875_VDBE1 0x5B//Vertical Destination Point 1 of BTE #define RA8875_BEWR0 0x5C//BTE Width Register 0 //#define RA8875_BEWR1 0x5D//BTE Width Register 1 #define RA8875_BEHR0 0x5E//BTE Height Register 0 //#define RA8875_BEHR1 0x5F//BTE Height Register 1 #define RA8875_PTNO 0x66//Pattern Set No for BTE #define RA8875_BTEROP_SOURCE 0xC0 //Overwrite dest with source (no mixing) *****THIS IS THE DEFAULT OPTION**** #define RA8875_BTEROP_BLACK 0xo0 //all black #define RA8875_BTEROP_WHITE 0xf0 //all white #define RA8875_BTEROP_DEST 0xA0 //destination unchanged #define RA8875_BTEROP_ADD 0xE0 //ADD (brighter) #define RA8875_BTEROP_SUBTRACT 0x20 //SUBTRACT (darker) #define RA8875_BGCR0 0x60//Background Color Register 0 (R) //#define RA8875_BGCR1 0x61//Background Color Register 1 (G) //#define RA8875_BGCR2 0x62//Background Color Register 2 (B) #define RA8875_FGCR0 0x63//Foreground Color Register 0 (R) //#define RA8875_FGCR1 0x64//Foreground Color Register 1 (G) //#define RA8875_FGCR2 0x65//Foreground Color Register 2 (B) #define RA8875_BGTR0 0x67//Background Color Register for Transparent 0 (R) //#define RA8875_BGTR1 0x68//Background Color Register for Transparent 1 (G) //#define RA8875_BGTR2 0x69//Background Color Register for Transparent 2 (B) #define RA8875_TPCR0 0x70//Touch Panel Control Register 0 //#define RA8875_TPCR0_ENABLE 0x80 //#define RA8875_TPCR0_DISABLE 0x00 #define RA8875_TPCR0_WAIT_512CLK 0x00 #define RA8875_TPCR0_WAIT_1024CLK 0x10 #define RA8875_TPCR0_WAIT_2048CLK 0x20 #define RA8875_TPCR0_WAIT_4096CLK 0x30 #define RA8875_TPCR0_WAIT_8192CLK 0x40 #define RA8875_TPCR0_WAIT_16384CLK 0x50 #define RA8875_TPCR0_WAIT_32768CLK 0x60 #define RA8875_TPCR0_WAIT_65536CLK 0x70 #define RA8875_TPCR0_WAKEENABLE 0x08 #define RA8875_TPCR0_WAKEDISABLE 0x00 #define RA8875_TPCR0_ADCCLK_DIV1 0x00 #define RA8875_TPCR0_ADCCLK_DIV2 0x01 #define RA8875_TPCR0_ADCCLK_DIV4 0x02 #define RA8875_TPCR0_ADCCLK_DIV8 0x03 #define RA8875_TPCR0_ADCCLK_DIV16 0x04 #define RA8875_TPCR0_ADCCLK_DIV32 0x05 #define RA8875_TPCR0_ADCCLK_DIV64 0x06 #define RA8875_TPCR0_ADCCLK_DIV128 0x07 #define RA8875_TPCR1 0x71//Touch Panel Control Register 1 #define RA8875_TPCR1_AUTO 0x00 #define RA8875_TPCR1_MANUAL 0x40 #define RA8875_TPCR1_VREFINT 0x00 #define RA8875_TPCR1_VREFEXT 0x20 #define RA8875_TPCR1_DEBOUNCE 0x04 #define RA8875_TPCR1_NODEBOUNCE 0x00 #define RA8875_TPCR1_IDLE 0x00 #define RA8875_TPCR1_WAIT 0x01 #define RA8875_TPCR1_LATCHX 0x02 #define RA8875_TPCR1_LATCHY 0x03 #define RA8875_TPXH 0x72//Touch Panel X High Byte Data Register #define RA8875_TPYH 0x73//Touch Panel Y High Byte Data Register #define RA8875_TPXYL 0x74//Touch Panel X/Y Low Byte Data Register //#define RA8875_GCHP0 0x80//Graphic Cursor Horizontal Position Register 0 //#define RA8875_GCHP1 0x81//Graphic Cursor Horizontal Position Register 1 //#define RA8875_GCVP0 0x82//Graphic Cursor Vertical Position Register 0 //#define RA8875_GCVP1 0x83//Graphic Cursor Vertical Position Register 0 //#define RA8875_GCC0 0x84//Graphic Cursor Color 0 //#define RA8875_GCC1 0x85//Graphic Cursor Color 1 #define RA8875_PLLC1 0x88//PLL Control Register 1 //#define RA8875_PLLC2 0x89//PLL Control Register 2 #define RA8875_P1CR 0x8A//PWM1 Control Register #define RA8875_P1DCR 0x8B//PWM1 Duty Cycle Register #define RA8875_P2CR 0x8C//PWM2 Control Register #define RA8875_P2DCR 0x8D//PWM2 Control Register #define RA8875_PxCR_ENABLE 0x80 #define RA8875_PxCR_DISABLE 0x00 #define RA8875_PxCR_CLKOUT 0x10 #define RA8875_PxCR_PWMOUT 0x00 #define RA8875_PWM_CLK_DIV1 0x00 #define RA8875_PWM_CLK_DIV2 0x01 #define RA8875_PWM_CLK_DIV4 0x02 #define RA8875_PWM_CLK_DIV8 0x03 #define RA8875_PWM_CLK_DIV16 0x04 #define RA8875_PWM_CLK_DIV32 0x05 #define RA8875_PWM_CLK_DIV64 0x06 #define RA8875_PWM_CLK_DIV128 0x07 #define RA8875_PWM_CLK_DIV256 0x08 #define RA8875_PWM_CLK_DIV512 0x09 #define RA8875_PWM_CLK_DIV1024 0x0A #define RA8875_PWM_CLK_DIV2048 0x0B #define RA8875_PWM_CLK_DIV4096 0x0C #define RA8875_PWM_CLK_DIV8192 0x0D #define RA8875_PWM_CLK_DIV16384 0x0E #define RA8875_PWM_CLK_DIV32768 0x0F #define RA8875_MCLR 0x8E//Memory Clear Control Register #define RA8875_DCR 0x90//Draw Line/Circle/Square Control Register #define RA8875_DCR_LINESQUTRI_START 0x80 #define RA8875_DCR_LINESQUTRI_STOP 0x00 #define RA8875_DCR_LINESQUTRI_STATUS 0x80 #define RA8875_DCR_CIRCLE_START 0x40 #define RA8875_DCR_CIRCLE_STATUS 0x40 #define RA8875_DCR_CIRCLE_STOP 0x00 #define RA8875_DCR_FILL 0x20 #define RA8875_DCR_NOFILL 0x00 #define RA8875_DCR_DRAWLINE 0x00 #define RA8875_DCR_DRAWTRIANGLE 0x01 #define RA8875_DCR_DRAWSQUARE 0x10 #define RA8875_DLHSR0 0x91//Draw Line/Square Horizontal Start Address Register0 //#define RA8875_DLHSR1 0x92//Draw Line/Square Horizontal Start Address Register1 #define RA8875_DLVSR0 0x93//Draw Line/Square Vertical Start Address Register0 //#define RA8875_DLVSR1 0x94//Draw Line/Square Vertical Start Address Register1 #define RA8875_DLHER0 0x95//Draw Line/Square Horizontal End Address Register0 //#define RA8875_DLHER1 0x96//Draw Line/Square Horizontal End Address Register1 #define RA8875_DLVER0 0x97//Draw Line/Square Vertical End Address Register0 //#define RA8875_DLVER1 0x98//Draw Line/Square Vertical End Address Register0 #define RA8875_DCHR0 0x99//Draw Circle Center Horizontal Address Register0 //#define RA8875_DCHR1 0x9A//Draw Circle Center Horizontal Address Register1 #define RA8875_DCVR0 0x9B//Draw Circle Center Vertical Address Register0 //#define RA8875_DCVR1 0x9C//Draw Circle Center Vertical Address Register1 #define RA8875_DCRR 0x9D//Draw Circle Radius Register #define RA8875_ELLIPSE 0xA0//Draw Ellipse/Ellipse Curve/Circle Square Control Register #define RA8875_ELLIPSE_STATUS 0x80 #define RA8875_ELL_A0 0xA1//Draw Ellipse/Circle Square Long axis Setting Register0 //#define RA8875_ELL_A1 0xA2//Draw Ellipse/Circle Square Long axis Setting Register1 #define RA8875_ELL_B0 0xA3//Draw Ellipse/Circle Square Short axis Setting Register0 //#define RA8875_ELL_B1 0xA4//Draw Ellipse/Circle Square Short axis Setting Register1 #define RA8875_DEHR0 0xA5//Draw Ellipse/Circle Square Center Horizontal Address Register0 //#define RA8875_DEHR1 0xA6//Draw Ellipse/Circle Square Center Horizontal Address Register1 #define RA8875_DEVR0 0xA7//Draw Ellipse/Circle Square Center Vertical Address Register0 //#define RA8875_DEVR1 0xA8//Draw Ellipse/Circle Square Center Vertical Address Register1 #define RA8875_DTPH0 0xA9//Draw Triangle Point 2 Horizontal Address Register0 //#define RA8875_DTPH1 0xAA//Draw Triangle Point 2 Horizontal Address Register1 #define RA8875_DTPV0 0xAB//Draw Triangle Point 2 Vertical Address Register0 //#define RA8875_DTPV1 0xAC//Draw Triangle Point 2 Vertical Address Register1 #define RA8875_SSAR0 0xB0//Source Starting Address REG 0 //#define RA8875_SSAR1 0xB1//Source Starting Address REG 1 //#define RA8875_SSAR2 0xB2//Source Starting Address REG 2 //#define RA8875_???? 0xB3//??????????? #define RA8875_DTNR0 0xB4//Block Width REG 0(BWR0) / DMA Transfer Number REG 0 #define RA8875_BWR1 0xB5//Block Width REG 1 #define RA8875_DTNR1 0xB6//Block Height REG 0(BHR0) /DMA Transfer Number REG 1 #define RA8875_BHR1 0xB7//Block Height REG 1 #define RA8875_DTNR2 0xB8//Source Picture Width REG 0(SPWR0) / DMA Transfer Number REG 2 #define RA8875_SPWR1 0xB9//Source Picture Width REG 1 #define RA8875_DMACR 0xBF//DMA Configuration REG #define RA8875_GPIOX 0xC7 #define RA8875_KSCR1 0xC0 //Key-Scan Control Register 1 (KSCR1) #define RA8875_KSCR2 0xC1 //Key-Scan Controller Register 2 (KSCR2) #define RA8875_KSDR0 0xC2 //Key-Scan Data Register (KSDR0) #define RA8875_KSDR1 0xC3 //Key-Scan Data Register (KSDR1) #define RA8875_KSDR2 0xC4 //Key-Scan Data Register (KSDR2) #define RA8875_INTC1 0xF0//Interrupt Control Register1 #define RA8875_INTC2 0xF1//Interrupt Control Register2 #define RA8875_INTCx_KEY 0x10 #define RA8875_INTCx_DMA 0x08 #define RA8875_INTCx_TP 0x04 #define RA8875_INTCx_BTE 0x02 #define RA8875_ENABLE_INT_TP ((uint8_t)(1<<2)) #define RA8875_DISABLE_INT_TP ((uint8_t)(0<<2)) #define TP_ENABLE ((uint8_t)(1<<7)) #define TP_DISABLE ((uint8_t)(0<<7)) #define TP_MODE_AUTO ((uint8_t)(0<<6)) #define TP_MODE_MANUAL ((uint8_t)(1<<6)) #define TP_DEBOUNCE_OFF ((uint8_t)(0<<2)) #define TP_DEBOUNCE_ON ((uint8_t)(1<<2)) #define TP_ADC_CLKDIV_1 0 #define TP_ADC_CLKDIV_2 1 #define TP_ADC_CLKDIV_4 2 #define TP_ADC_CLKDIV_8 3 #define TP_ADC_CLKDIV_16 4 #define TP_ADC_CLKDIV_32 5 #define TP_ADC_CLKDIV_64 6 #define TP_ADC_CLKDIV_128 7 #define TP_ADC_SAMPLE_512_CLKS ((uint8_t)(0<<4)) #define TP_ADC_SAMPLE_1024_CLKS ((uint8_t)(1<<4)) #define TP_ADC_SAMPLE_2048_CLKS ((uint8_t)(2<<4)) #define TP_ADC_SAMPLE_4096_CLKS ((uint8_t)(3<<4)) #define TP_ADC_SAMPLE_8192_CLKS ((uint8_t)(4<<4)) #define TP_ADC_SAMPLE_16384_CLKS ((uint8_t)(5<<4)) #define TP_ADC_SAMPLE_32768_CLKS ((uint8_t)(6<<4)) #define TP_ADC_SAMPLE_65536_CLKS ((uint8_t)(7<<4)) #endif