Christopher H / Mbed 2 deprecated DI_LAB2

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers lcd.h Source File

lcd.h

00001 #ifndef LCD_H
00002 #define LCD_H
00003 
00004 #include "platform.h"
00005 #include "wait_api.h"
00006 #include "gpio_api.h"
00007 #include "spi_api.h"
00008 
00009 #define MIN_X   0
00010 #define MIN_Y   0
00011 #define MAX_X   239
00012 #define MAX_Y   319
00013 
00014 //Basic Colors
00015 #define RED     0xf800
00016 #define GREEN   0x07e0
00017 #define BLUE    0x001f
00018 #define BLACK   0x0000
00019 #define YELLOW  0xffe0
00020 #define WHITE   0xffff
00021 
00022 //Other Colors
00023 #define CYAN        0x07ff  
00024 #define BRIGHT_RED  0xf810  
00025 #define GRAY1       0x8410  
00026 #define GRAY2       0x4208
00027 
00028 #define FONT_SPACE 6
00029 #define FONT_X 8
00030 #define FONT_Y 8
00031 
00032 #ifdef __cplusplus
00033 extern "C" {
00034 #endif
00035 
00036 extern uint8_t simpleFont[][8];
00037 
00038 typedef enum
00039 {
00040     PORTRAIT = 0,
00041     LANDSCAPE = 1
00042  } lcd_mode;
00043 
00044 typedef struct
00045 {
00046   lcd_mode mode;
00047   spi_t * spi;
00048   gpio_t CS;
00049   gpio_t CD;
00050 } lcd_t;
00051 
00052 #define LCD_vInit   lcd_init
00053 /*********************************************
00054  * Display wird initialisiert 
00055  * Aufruf LCD_vInit(
00056  *              lcd_t *     - Übergabestruktur
00057  *
00058  * Beispiel: LCD_vInit(&myLCD, &mySPI, p22, p23);
00059  *********************************************/
00060 
00061 #define LCD_vDrawFloat lcd_drawFloat
00062 /*********************************************
00063  * gibt eine Floating-Point-Zahl zum Display
00064  * Aufruf LCD_vDrawFloat(
00065  *              lcd_t *     - Übergabestruktur
00066  *
00067  *********************************************/
00068 
00069 #define LCD_vDrawRectangle lcd_drawRectangle
00070 /*********************************************
00071  * zeichnet ein leeres Rechteck
00072  * Aufruf LCD_vDrawRectangle(
00073  *              lcd_t *     - Übergabestruktur
00074  *
00075  * Beispiel: LCD_vDrawRectangle(&myLCD, 20, 20, 50, 50, BLACK);
00076  *********************************************/
00077 
00078 #define LCD_vFillRectangle lcd_fillRectangle
00079 /*********************************************
00080  * zeichnet ein gefülltes Rechteck
00081  * Aufruf LCD_vFillRectangle(
00082  *              lcd_t *     - Übergabestruktur
00083  *
00084  * Beispiel: LCD_vFillRectangle(&myLCD, 10, 10, 50, 50, BLUE);
00085  *********************************************/
00086 
00087 #define LCD_vFillSprite lcd_fillSprite
00088 /*********************************************
00089  * gibt eine Grafik aus 
00090  * funktioniert nur im Mode LANDSCAPE
00091  * Aufruf LCD_vFillSprite(
00092  *              lcd_t *     - Übergabestruktur
00093  *
00094  * Beispiel: LCD_vFillSprite(&myLCD, 200, dwPos, 69, 86, (int*) &awRobot[0]);
00095  *********************************************/
00096 
00097 #define LCD_vSetMode lcd_setMode
00098 /*********************************************
00099  * Hoch- (PORTRAIT) oder Querformat (LANDSCAPE)
00100  * Aufruf LCD_vSetMode(
00101  *              lcd_t *     - Übergabestruktur
00102  *
00103  * Beispiel: LCD_vSetMode(&myLCD, LANDSCAPE);
00104  *********************************************/
00105 
00106 #define LCD_vDrawLine lcd_drawLine
00107 /*********************************************
00108  * zeichnet eine Linie
00109  * Aufruf LCD_vDrawLine(
00110  *              lcd_t *     - Übergabestruktur
00111  *
00112  * Beispiel: LCD_vDrawLine(&myLCD, 30, 30, 70, 90, RED);
00113  *********************************************/
00114 
00115 #define LCD_vDrawTraingle lcd_drawTraingle
00116 /*********************************************
00117  * zeichnet ein Dreieck
00118  * Aufruf LCD_vDrawTraingle(
00119  *              lcd_t *     - Übergabestruktur
00120  *
00121  * Beispiel: LCD_vDrawTraingle(&myLCD, 0, 200, 30, 220, 15, 240, BRIGHT_RED);
00122  *********************************************/
00123 
00124 #define LCD_vFillTraingle lcd_fillTraingle
00125 /*********************************************
00126  * zeichnet ein gefülltes Dreieck
00127  * Aufruf LCD_vFillTraingle(
00128  *              lcd_t *     - Übergabestruktur
00129  *
00130  * Beispiel: LCD_vFillTraingle(&myLCD, 10, 100, 40, 120, 25, 150, GRAY1);
00131  *********************************************/
00132 
00133 #define LCD_vDrawCircle lcd_drawCircle
00134 /*********************************************
00135  * zeichnet ein gefülltes Dreieck
00136  * Aufruf LCD_vDrawCircle(
00137  *              lcd_t *     - Übergabestruktur
00138  *
00139  * Beispiel: LCD_vDrawCircle(&myLCD, 160, 120, 50, BLACK);
00140  *********************************************/
00141 
00142 #define LCD_vSetPixel lcd_setPixel
00143 /*********************************************
00144  * zeichnet einen Punkt
00145  * Aufruf LCD_vSetPixel(
00146  *              lcd_t *     - Übergabestruktur
00147  *
00148  * Beispiel: LCD_vSetPixel(&myLCD, 160, 120, BLACK);
00149  *********************************************/
00150 
00151 #define LCD_vDrawVline lcd_drawHorizontalLine
00152 //(lcd_t * lcd, int x, int y, int length, int color);
00153 
00154 #define LCD_vDrawHline lcd_drawVerticalLine
00155 //(lcd_t * lcd, int x, int y, int length, int color);
00156 
00157 void lcd_init(lcd_t * lcd, spi_t * spi, PinName CS, PinName CD);
00158 
00159 void lcd_cs(lcd_t * lcd, int value);
00160 
00161 void lcd_cd(lcd_t * lcd, int value);
00162 
00163 void lcd_setMode(lcd_t * lcd, lcd_mode mode);
00164 
00165 void lcd_writeCommand(lcd_t * lcd, int value);
00166 
00167 void lcd_writeData(lcd_t * lcd, int value);
00168 
00169 void lcd_writeData16(lcd_t * lcd, int value);
00170 
00171 void lcd_setColumn(lcd_t * lcd, int start, int end);
00172 
00173 void lcd_setPage(lcd_t * lcd, int start, int end);
00174 
00175 void lcd_fillScreen(lcd_t * lcd);
00176 
00177 void lcd_drawLine(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
00178 
00179 void lcd_drawVerticalLine(lcd_t * lcd, int x, int y, int length, int color);
00180 
00181 void lcd_drawHorizontalLine(lcd_t * lcd, int x, int y, int length, int color);
00182 
00183 void lcd_drawRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
00184 
00185 void lcd_fillRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
00186 
00187 void lcd_fillSprite(lcd_t * lcd, int x0, int y0, int length, int width, short int *pColor);
00188 
00189 void lcd_drawTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color);
00190 
00191 void lcd_fillTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color);
00192 
00193 void lcd_setLandscape(lcd_t * lcd);
00194 
00195 void lcd_setPortrait(lcd_t * lcd);
00196 
00197 void lcd_setXY(lcd_t * lcd, int x, int y);
00198 
00199 void lcd_setPixel(lcd_t * lcd, int x, int y, int color);
00200 
00201 void lcd_drawCircle(lcd_t * lcd, int x, int y, int radius, int color);
00202 
00203 void lcd_drawChar(lcd_t * lcd, char c, int x, int y, uint16_t size, uint16_t color);
00204 
00205 void lcd_drawString(lcd_t * lcd, char * ca, int x, int y, uint16_t size, uint16_t color);
00206 
00207 uint8_t lcd_drawNumber(lcd_t * lcd, long long_num, int x, int y, uint16_t size, uint16_t color);
00208 
00209 uint8_t lcd_drawFloat(lcd_t * lcd, float floatNumber, uint8_t decimal, int x, int y, uint16_t size, uint16_t color);
00210 
00211 #ifdef __cplusplus
00212 }
00213 #endif
00214 
00215 #endif
00216