/***************************************************************************** * lcd.h: Header file for lcd.c file * * 2014.12.08 ver 1.00 Prelimnary version, first Release * ******************************************************************************/ #ifndef __lcd_H #define __lcd_H #include "lpc_types.h" #include "power.h" #define SSD_WR (1 << 1) //P1.1 #define SSD_RD (1 << 4) //P1.4 #define SSD_RS (1 << 0) //P1.0 D/C #define SSD_CS (1 << 9) //P1.12 #define SSD_RES (1 << 14) //P1.14 #define SSD_LEDA (1 << 15) //P1.15 #define LCD_WR(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_WR) : (LPC_GPIO1->FIOCLR = SSD_WR)); #define LCD_RD(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_RD) : (LPC_GPIO1->FIOCLR = SSD_RD)); #define LCD_RS(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_RS) : (LPC_GPIO1->FIOCLR = SSD_RS)); #define LCD_CS(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_CS) : (LPC_GPIO1->FIOCLR = SSD_CS)); #define LCD_RES(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_RES) : (LPC_GPIO1->FIOCLR = SSD_RES)); #define LCD_LEDA(x) ((x) ? (LPC_GPIO1->FIOSET = SSD_LEDA) : (LPC_GPIO1->FIOCLR = SSD_LEDA)); #define Lcd_toolsbare_reset last_data.data_state=0 //=================== /* #define HDP 799 //Horizontal Display Period #define HT 1000 //Horizontal Total 1000 #define HPS 51 //LLINE Pulse Start Position #define LPS 3 //Horizontal Display Period Start Position 3 #define HPW 8 //LLINE Pulse Width #define VDP 479 //Vertical Display Period #define VT 530 //Vertical Total 530 #define VPS 24 //LFRAME Pulse Start Position #define FPS 23 //Vertical Display Period Start Positio 23 #define VPW 3 //LFRAME Pulse Width */ #define TFT_HOR_RESOLUTION 800 #define TFT_VER_RESOLUTION 480 #define TFT_HOR_PULSE_WIDTH 1 #define TFT_HOR_BACK_PORCH 210 #define TFT_HOR_FRONT_PORCH 45 #define TFT_VER_PULSE_WIDTH 1 #define TFT_VER_BACK_PORCH 34 #define TFT_VER_FRONT_PORCH 10 #define HT (TFT_HOR_RESOLUTION+TFT_HOR_PULSE_WIDTH+TFT_HOR_BACK_PORCH+TFT_HOR_FRONT_PORCH) #define HPS (TFT_HOR_PULSE_WIDTH+TFT_HOR_BACK_PORCH) #define VT (TFT_VER_PULSE_WIDTH+TFT_VER_BACK_PORCH+TFT_VER_FRONT_PORCH+TFT_VER_RESOLUTION) #define VSP (TFT_VER_PULSE_WIDTH+TFT_VER_BACK_PORCH) #define Up2Down2Left2Right 0x01 #define Down2Up2Right2Left 0x02 #define Up2Down2Right2Left 0x00 #define Down2Up2Left2Right 0x03 //============================================================================= // SSD commands //============================================================================= #define SSD_NOP 0x00 #define SSD_SOFT_RESET 0x01 #define SSD_GET_POWER_MODE 0x0A #define SSD_GET_ADDRESS_MODE 0x0B #define SSD_GET_DISPLAY_MODE 0x0D #define SSD_GET_TEAR_EFFECT_STATUS 0x0E #define SSD_ENTER_SLEEP_MODE 0x10 #define SSD_EXIT_SLEEP_MODE 0x11 #define SSD_ENTER_PARTIAL_MODE 0x12 #define SSD_ENTER_NORMAL_MODE 0x13 #define SSD_EXIT_INVERT_MODE 0x20 #define SSD_ENTER_INVERT_MODE 0x21 #define SSD_SET_GAMMA_CURVE 0x26 #define SSD_SET_DISPLAY_OFF 0x28 #define SSD_SET_DISPLAY_ON 0x29 #define SSD_SET_COLUMN_ADDRESS 0x2A #define SSD_SET_PAGE_ADDRESS 0x2B #define SSD_WRITE_MEMORY_START 0x2C #define SSD_READ_MEMORY_START 0x2E #define SSD_SET_PARTIAL_AREA 0x30 #define SSD_SET_SCROLL_AREA 0x33 #define SSD_SET_TEAR_OFF 0x34 #define SSD_SET_REAR_ON 0x35 #define SSD_SET_ADDRESS_MODE 0x36 #define SSD_SET_SCROLL_START 0x37 #define SSD_EXIT_IDLE_MODE 0x38 #define SSD_ENTER_IDLE_MODE 0x39 #define SSD_SET_PIXEL_FORMAT 0x3A #define SSD_WRITE_MEMORY_CONTINUE 0x3C #define SSD_READ_MEMORY_CONTINUE 0x3E #define SSD_SET_TEAR_SCANLINE 0x44 #define SSD_GET_SCANLINE 0x45 #define SSD_READ_DDB 0xA1 #define SSD_SET_LCD_MODE 0xB0 #define SSD_GET_LCD_MODE 0xB1 #define SSD_SET_HORI_PERIOD 0xB4 #define SSD_GET_HORI_PERIOD 0xB5 #define SSD_SET_VERT_PERIOD 0xB6 #define SSD_GET_VERT_PERIOD 0xB7 #define SSD_SET_GPIO_CONF 0xB8 #define SSD_GET_GPIO_CONF 0xB9 #define SSD_SET_GPIO_VALUE 0xBA #define SSD_GET_GPIO_STATUS 0xBB #define SSD_SET_POST_PROC 0xBC #define SSD_GET_POST_PROC 0xBD #define SSD_SET_PWM_CONF 0xBE #define SSD_GET_PWM_CONF 0xBF #define SSD_GET_LCD_GEN0 0xC0 #define SSD_SET_LCD_GEN0 0xC1 #define SSD_GET_LCD_GEN1 0xC2 #define SSD_SET_LCD_GEN1 0xC3 #define SSD_GET_LCD_GEN2 0xC4 #define SSD_SET_LCD_GEN2 0xC5 #define SSD_GET_LCD_GEN3 0xC6 #define SSD_SET_LCD_GEN3 0xC7 #define SSD_SET_GPIO0_ROP 0xC8 #define SSD_GET_GPIO0_ROP 0xC9 #define SSD_SET_GPIO1_ROP 0xCA #define SSD_GET_GPIO1_ROP 0xCB #define SSD_SET_GPIO2_ROP 0xCC #define SSD_GET_GPIO2_ROP 0xCD #define SSD_SET_GPIO3_ROP 0xCE #define SSD_GET_GPIO3_ROP 0xCF #define SSD_SET_DBC_CONF 0xD0 #define SSD_GET_DBC_CONF 0xD1 #define SSD_SET_DBC_TH 0xD4 #define SSD_GET_DBC_TH 0xD5 #define SSD_SET_PLL 0xE0 #define SSD_SET_PLL_MN 0xE2 #define SSD_GET_PLL_MN 0xE3 #define SSD_GET_PLL_STATUS 0xE4 #define SSD_SET_DEEP_SLEEP 0xE5 #define SSD_SET_LSHIFT_FREQ 0xE6 #define SSD_GET_LSHIFT_FREQ 0xE7 #define SSD_SET_PIXEL_DATA_INTERFACE 0xF0 #define SSD_PDI_8BIT 0 #define SSD_PDI_12BIT 1 #define SSD_PDI_16BIT 2 #define SSD_PDI_16BIT565 3 #define SSD_PDI_18BIT 4 #define SSD_PDI_24BIT 5 #define SSD_PDI_9BIT 6 #define SSD_GET_PIXEL_DATA_INTERFACE 0xF1 /* //-----------------color---------------------------------- #define RED 0XF800 #define GREEN 0xF81F //0X07E0 #define GREEN1 0x07C0 #define BLUE 0xFFE0 //0X001F #define BRED 0XF81F #define GRED 0XFFE0 #define GBLUE 0X07FF #define WHITE 0XFFFF #define BLACK 0X0000 #define BROWN 0XBC40 #define BRRED 0XFC07 #define GRAY 0X8430 #define LGRAY 0XC618 #define YELOW 0x07FF //---------------------------------------------------- */ // Translates a 24-bit RGB color to BGR565 #define TRANSLATE24BIT_TO_BGR565(c) ((((c) & 0x00ff0000) >> 19) | \ ((((c) & 0x0000ff00) >> 5) & 0x000007e0) | \ ((((c) & 0x000000ff) << 8) & 0x0000f800)) // Define a basic set of 24bit colors, based on the standard "websafe" set #define COLOR24_AQUA 0x00FFFF #define COLOR24_GREY 0x808080 #define COLOR24_NAVY 0x000080 #define COLOR24_SILVER 0xC0C0C0 #define COLOR24_BLACK 0x000000 #define COLOR24_GREEN 0x008000 #define COLOR24_OLIVE 0x808000 #define COLOR24_TEAL 0x008080 #define COLOR24_BLUE 0x0000FF #define COLOR24_LIME 0x00FF00 //#define COLOR24_LIME 0x28166F #define COLOR24_PURPLE 0x800080 #define COLOR24_WHITE 0xFFFFFF #define COLOR24_FUCHSIA 0xFF00FF #define COLOR24_MAROON 0x800000 #define COLOR24_RED 0xFF0000 #define COLOR24_YELLOW 0xFFFF00 #define COLOR24_BACK1 0x23A7DB // BLUE1 35 167 219 #define COLOR24_BACK2 0x005DA1 // BLUE2 00 93 161 #define COLOR24_BACK3 0x0000FF // BLUE3 00 00 255 #define COLOR24_BACK4 0x82C69C // GREEN 130 198 156 #define COLOR24_BACK5 0xFFF500 // YELLOW 255 245 00 // Create a set of RGB565 colors that can be used directly within code #define COLOR_AQUA TRANSLATE24BIT_TO_BGR565(COLOR24_AQUA) #define COLOR_GREY TRANSLATE24BIT_TO_BGR565(COLOR24_GREY) #define COLOR_NAVY TRANSLATE24BIT_TO_BGR565(COLOR24_NAVY) #define COLOR_SILVER TRANSLATE24BIT_TO_BGR565(COLOR24_SILVER) #define COLOR_BLACK TRANSLATE24BIT_TO_BGR565(COLOR24_BLACK) #define COLOR_GREEN TRANSLATE24BIT_TO_BGR565(COLOR24_GREEN) #define COLOR_OLIVE TRANSLATE24BIT_TO_BGR565(COLOR24_OLIVE) #define COLOR_TEAL TRANSLATE24BIT_TO_BGR565(COLOR24_TEAL) #define COLOR_BLUE TRANSLATE24BIT_TO_BGR565(COLOR24_BLUE) #define COLOR_LIME TRANSLATE24BIT_TO_BGR565(COLOR24_LIME) #define COLOR_PURPLE TRANSLATE24BIT_TO_BGR565(COLOR24_PURPLE) #define COLOR_WHITE TRANSLATE24BIT_TO_BGR565(COLOR24_WHITE) #define COLOR_FUCHSIA TRANSLATE24BIT_TO_BGR565(COLOR24_FUCHSIA) #define COLOR_MAROON TRANSLATE24BIT_TO_BGR565(COLOR24_MAROON) #define COLOR_RED TRANSLATE24BIT_TO_BGR565(COLOR24_RED) #define COLOR_YELLOW TRANSLATE24BIT_TO_BGR565(COLOR24_YELLOW) #define COLOR_BACK1 TRANSLATE24BIT_TO_BGR565(COLOR24_BACK1) #define COLOR_BACK2 TRANSLATE24BIT_TO_BGR565(COLOR24_BACK2) #define COLOR_BACK3 TRANSLATE24BIT_TO_BGR565(COLOR24_BACK3) #define COLOR_BACK4 TRANSLATE24BIT_TO_BGR565(COLOR24_BACK4) #define COLOR_BACK5 TRANSLATE24BIT_TO_BGR565(COLOR24_BACK5) // bmp files define #define BMP_Start_Data 10 #define BMP_Width 18 #define BMP_Height 22 #define BMP_Size 34 #define BMP_Identify0 0x42 #define BMP_Identify1 0x4d typedef enum{ center=0, left, right }Textlign_unum_type; typedef struct{ uint8_t minute; FunctionalState zero; FunctionalState tara; FunctionalState hold; FunctionalState stable; uint8_t connection; uint8_t antenna; struct { BATTRY_STATE_ENUM_type type; uint8_t per; }battry; FunctionalState data_state; }TOOLSBAR_DATA_type ; // #define BackGrounf_color main_background_color // #define Toolsbar_BackGrounf_color TRANSLATE24BIT_TO_BGR565(0x0080ff) #define BackGrounf_color main_background_color #define Toolsbar_BackGrounf_color COLOR_BLUE //============================================================================= #define LCD_DisplayOn SSD_Wr_Cmd( SSD_SET_DISPLAY_ON ) #define LCD_DisplayOff SSD_Wr_Cmd( SSD_SET_DISPLAY_OFF ) #define LCD_Enter_SleepMode SSD_Wr_Cmd( SSD_ENTER_SLEEP_MODE ) #define LCD_Exit_SleepMode SSD_Wr_Cmd( SSD_EXIT_SLEEP_MODE ) #define LCD_Enter_DeepSleep SSD_Wr_Cmd( SSD_SET_DEEP_SLEEP ) extern void SSD_Send ( uint16_t data); extern void SSD_Wr_Cmd( uint8_t c ); extern void SSD_Wr_Data( uint16_t c ); extern void SSD_Rd_Data( uint8_t cnt ); extern void SSD_Rd_Data1(uint16_t *c); extern void lcd_init(void); extern void SSD_SetArea(unsigned int sx, unsigned int ex, unsigned int sy, unsigned int ey); extern void LCD_ClearScreen(unsigned long color); extern void LCD_SetPixel(int x, int y, unsigned long color); extern void LCD_DrawLine(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint32_t color); extern void LCD_DrawCircle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color); extern void LCD_Fill(uint16_t xs, uint16_t ys, uint16_t xe, uint16_t ye, uint16_t color); extern void LCD_DrawRectangle(uint16_t x11, uint16_t y11,uint16_t x22, uint16_t y22, uint16_t color111 ); extern void LCD_Backlight( uint8_t intensity); extern uint8_t LCD_Backlight_read( void); extern Status LCD_Pic_Put (uint16_t x0, uint16_t y0,char *name); extern void LCD_PUT_NUM ( const uint8_t *font, uint16_t x , uint16_t y , uint8_t *number , uint32_t text_color , uint32_t background_color , Textlign_unum_type align , uint16_t space ); extern void LCD_pic_put_local ( const unsigned char *pic , uint16_t x , uint16_t y , uint32_t img_color , uint32_t BG_color ); extern void LCD_toolsbar_update ( void ); // void Display_Str(u16 x0, u16 y0, u16 Font_Color, u16 Back_Color, u8 Font_Size, unsigned const char *s); // void LCD_DrawLine(uint16_t xsta, uint16_t ysta, uint16_t xend, uint16_t yend, uint16_t color); // void Draw_Circle(uint16_t x0, uint16_t y0, uint8_t r, uint16_t color); // void SSD_DispPic(uint16_t x0, uint16_t y0, uint16_t Width, uint16_t Height, char *name); // void LCD_Fill(uint8_t x0, uint16_t y0, uint16_t Width, uint16_t Height, uint16_t color); extern void tftlcd_put_char(char character); extern void tftlcd_put_bold_char(char character , char size, int text_color , int BG_color); extern void tftlcd_putsf_mix(const char *string , int x , int y , char size, int text_color , int BG_color); extern void unicode2ascii(char *uni_str , char *ascii_str); extern void utf8_2_ascii(char *utf_str , char *ascii_str); extern void server2ascii(char *server_str , char *ascii_str ); extern void lcd_write_block ( uint16_t x , uint16_t y , uint8_t *filse_name ); extern void lcd_read_block ( uint16_t x , uint16_t y , uint16_t width , uint16_t height , uint8_t *filse_name ); #endif /* end of __lcd_h */