/*------------------------------------------------------------------------------ -- This file is a part of the libuc, microcontroler library -- Copyright (C) 2013, Alexis Jeandet -- -- This program is free software; you can redistribute it and/or modify -- it under the terms of the GNU General Public License as published by -- the Free Software Foundation; either version 3 of the License, or -- (at your option) any later version. -- -- This program is distributed in the hope that it will be useful, -- but WITHOUT ANY WARRANTY; without even the implied warranty of -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -- GNU General Public License for more details. -- -- You should have received a copy of the GNU General Public License -- along with this program; if not, write to the Free Software -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ------------------------------------------------------------------------------- -- Author : Alexis Jeandet -- Mail : alexis.jeandet@gmail.com -------------------------------------------------------------------------------*/ #ifndef SSD2119_H #define SSD2119_H #include #include #include #include extern int ssd2119init(struct LCD_t* LCD); extern void ssd2119setFrame(LCD_t* LCD,uint16_t X,uint16_t Y,uint16_t W,uint16_t H); extern void ssd2119setGRAMaddress(LCD_t* LCD,uint16_t Haddress,uint16_t Vaddress); extern void ssd2119paint(LCD_t* LCD,void* buffer,uint16_t Xpos,uint16_t Ypos,uint16_t Width,uint16_t Height); extern void ssd2119paintText(LCD_t* LCD,char* buffer,uint16_t Xpos,uint16_t Ypos,sFONT *font,uint32_t color); extern void ssd2119paintFilRect(LCD_t* LCD,uint16_t Xpos,uint16_t Ypos,uint16_t w,uint16_t h,uint32_t contColor,uint16_t contSz,uint32_t fillColor); extern void ssd2119paintFilCirc(LCD_t* LCD,uint16_t Xpos,uint16_t Ypos,uint16_t r,uint32_t contColor,uint16_t contSz,uint32_t fillColor); extern void ssd2119paintFilCircMidPoint(LCD_t* LCD,uint16_t Xpos,uint16_t Ypos,uint16_t r,uint32_t contColor,uint16_t contSz,uint32_t fillColor); extern void ssd2119refreshenable(struct LCD_t* LCD,int enable); /* SSD2119 registers */ #define SSD2119_REGISTER_DEVICE_CODE_READ ((uint32_t)0x00) #define SSD2119_REGISTER_OSC_START ((uint32_t)0x00) #define SSD2119_REGISTER_OUTPUT_CTRL ((uint32_t)0x01) #define SSD2119_REGISTER_LCD_DRIVE_AC_CTRL ((uint32_t)0x02) #define SSD2119_REGISTER_PWR_CTRL_1 ((uint32_t)0x03) #define SSD2119_REGISTER_DISPLAY_CTRL ((uint32_t)0x07) #define SSD2119_REGISTER_FRAME_CYCLE_CTRL ((uint32_t)0x0B) #define SSD2119_REGISTER_PWR_CTRL_2 ((uint32_t)0x0C) #define SSD2119_REGISTER_PWR_CTRL_3 ((uint32_t)0x0D) #define SSD2119_REGISTER_PWR_CTRL_4 ((uint32_t)0x0E) #define SSD2119_REGISTER_GATE_SCAN_START ((uint32_t)0x0F) #define SSD2119_REGISTER_SLEEP_MODE_1 ((uint32_t)0x10) #define SSD2119_REGISTER_ENTRY_MODE ((uint32_t)0x11) #define SSD2119_REGISTER_SLEEP_MODE_2 ((uint32_t)0x12) #define SSD2119_REGISTER_GEN_IF_CTRL ((uint32_t)0x15) #define SSD2119_REGISTER_H_PORCH ((uint32_t)0x16) #define SSD2119_REGISTER_V_PORCH ((uint32_t)0x17) #define SSD2119_REGISTER_PWR_CTRL_5 ((uint32_t)0x1E) #define SSD2119_REGISTER_UNIFORMITY ((uint32_t)0x20) #define SSD2119_REGISTER_RAM_DATA ((uint32_t)0x22) #define SSD2119_REGISTER_FRAME_FREQ ((uint32_t)0x25) #define SSD2119_REGISTER_ANALOG_SET ((uint32_t)0x26) #define SSD2119_REGISTER_VCOM_OTP_1 ((uint32_t)0x28) #define SSD2119_REGISTER_VCOM_OTP_2 ((uint32_t)0x29) #define SSD2119_REGISTER_GAMMA_CTRL_1 ((uint32_t)0x30) #define SSD2119_REGISTER_GAMMA_CTRL_2 ((uint32_t)0x31) #define SSD2119_REGISTER_GAMMA_CTRL_3 ((uint32_t)0x32) #define SSD2119_REGISTER_GAMMA_CTRL_4 ((uint32_t)0x33) #define SSD2119_REGISTER_GAMMA_CTRL_5 ((uint32_t)0x34) #define SSD2119_REGISTER_GAMMA_CTRL_6 ((uint32_t)0x35) #define SSD2119_REGISTER_GAMMA_CTRL_7 ((uint32_t)0x36) #define SSD2119_REGISTER_GAMMA_CTRL_8 ((uint32_t)0x37) #define SSD2119_REGISTER_GAMMA_CTRL_9 ((uint32_t)0x3A) #define SSD2119_REGISTER_GAMMA_CTRL_10 ((uint32_t)0x3B) #define SSD2119_REGISTER_V_SCROLL_1 ((uint32_t)0x41) #define SSD2119_REGISTER_V_SCROLL_2 ((uint32_t)0x42) #define SSD2119_REGISTER_V_RAM_POS ((uint32_t)0x44) #define SSD2119_REGISTER_H_RAM_START ((uint32_t)0x45) #define SSD2119_REGISTER_H_RAM_END ((uint32_t)0x46) #define SSD2119_REGISTER_1_DRV_POS_1 ((uint32_t)0x48) #define SSD2119_REGISTER_1_DRV_POS_2 ((uint32_t)0x49) #define SSD2119_REGISTER_2_DRV_POS_1 ((uint32_t)0x4A) #define SSD2119_REGISTER_2_DRV_POS_2 ((uint32_t)0x4B) #define SSD2119_REGISTER_X_RAM_ADDR ((uint32_t)0x4E) #define SSD2119_REGISTER_Y_RAM_ADDR ((uint32_t)0x4F) #endif