TO CHECKOUT

Dependencies:   mbed

Committer:
chrish
Date:
Sat Nov 29 17:48:10 2014 +0000
Revision:
0:785c2b62c4d1
TO CHECKOUT;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
chrish 0:785c2b62c4d1 1 #ifndef LCD_H
chrish 0:785c2b62c4d1 2 #define LCD_H
chrish 0:785c2b62c4d1 3
chrish 0:785c2b62c4d1 4 #include "platform.h"
chrish 0:785c2b62c4d1 5 #include "wait_api.h"
chrish 0:785c2b62c4d1 6 #include "gpio_api.h"
chrish 0:785c2b62c4d1 7 #include "spi_api.h"
chrish 0:785c2b62c4d1 8
chrish 0:785c2b62c4d1 9 #define MIN_X 0
chrish 0:785c2b62c4d1 10 #define MIN_Y 0
chrish 0:785c2b62c4d1 11 #define MAX_X 239
chrish 0:785c2b62c4d1 12 #define MAX_Y 319
chrish 0:785c2b62c4d1 13
chrish 0:785c2b62c4d1 14 //Basic Colors
chrish 0:785c2b62c4d1 15 #define RED 0xf800
chrish 0:785c2b62c4d1 16 #define GREEN 0x07e0
chrish 0:785c2b62c4d1 17 #define BLUE 0x001f
chrish 0:785c2b62c4d1 18 #define BLACK 0x0000
chrish 0:785c2b62c4d1 19 #define YELLOW 0xffe0
chrish 0:785c2b62c4d1 20 #define WHITE 0xffff
chrish 0:785c2b62c4d1 21
chrish 0:785c2b62c4d1 22 //Other Colors
chrish 0:785c2b62c4d1 23 #define CYAN 0x07ff
chrish 0:785c2b62c4d1 24 #define BRIGHT_RED 0xf810
chrish 0:785c2b62c4d1 25 #define GRAY1 0x8410
chrish 0:785c2b62c4d1 26 #define GRAY2 0x4208
chrish 0:785c2b62c4d1 27
chrish 0:785c2b62c4d1 28 #define FONT_SPACE 6
chrish 0:785c2b62c4d1 29 #define FONT_X 8
chrish 0:785c2b62c4d1 30 #define FONT_Y 8
chrish 0:785c2b62c4d1 31
chrish 0:785c2b62c4d1 32 #ifdef __cplusplus
chrish 0:785c2b62c4d1 33 extern "C" {
chrish 0:785c2b62c4d1 34 #endif
chrish 0:785c2b62c4d1 35
chrish 0:785c2b62c4d1 36 extern uint8_t simpleFont[][8];
chrish 0:785c2b62c4d1 37
chrish 0:785c2b62c4d1 38 typedef enum
chrish 0:785c2b62c4d1 39 {
chrish 0:785c2b62c4d1 40 PORTRAIT = 0,
chrish 0:785c2b62c4d1 41 LANDSCAPE = 1
chrish 0:785c2b62c4d1 42 } lcd_mode;
chrish 0:785c2b62c4d1 43
chrish 0:785c2b62c4d1 44 typedef struct
chrish 0:785c2b62c4d1 45 {
chrish 0:785c2b62c4d1 46 lcd_mode mode;
chrish 0:785c2b62c4d1 47 spi_t * spi;
chrish 0:785c2b62c4d1 48 gpio_t CS;
chrish 0:785c2b62c4d1 49 gpio_t CD;
chrish 0:785c2b62c4d1 50 } lcd_t;
chrish 0:785c2b62c4d1 51
chrish 0:785c2b62c4d1 52 #define LCD_vInit lcd_init
chrish 0:785c2b62c4d1 53 /*********************************************
chrish 0:785c2b62c4d1 54 * Display wird initialisiert
chrish 0:785c2b62c4d1 55 * Aufruf LCD_vInit(
chrish 0:785c2b62c4d1 56 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 57 *
chrish 0:785c2b62c4d1 58 * Beispiel: LCD_vInit(&myLCD, &mySPI, p22, p23);
chrish 0:785c2b62c4d1 59 *********************************************/
chrish 0:785c2b62c4d1 60
chrish 0:785c2b62c4d1 61 #define LCD_vDrawFloat lcd_drawFloat
chrish 0:785c2b62c4d1 62 /*********************************************
chrish 0:785c2b62c4d1 63 * gibt eine Floating-Point-Zahl zum Display
chrish 0:785c2b62c4d1 64 * Aufruf LCD_vDrawFloat(
chrish 0:785c2b62c4d1 65 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 66 *
chrish 0:785c2b62c4d1 67 *********************************************/
chrish 0:785c2b62c4d1 68
chrish 0:785c2b62c4d1 69 #define LCD_vDrawRectangle lcd_drawRectangle
chrish 0:785c2b62c4d1 70 /*********************************************
chrish 0:785c2b62c4d1 71 * zeichnet ein leeres Rechteck
chrish 0:785c2b62c4d1 72 * Aufruf LCD_vDrawRectangle(
chrish 0:785c2b62c4d1 73 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 74 *
chrish 0:785c2b62c4d1 75 * Beispiel: LCD_vDrawRectangle(&myLCD, 20, 20, 50, 50, BLACK);
chrish 0:785c2b62c4d1 76 *********************************************/
chrish 0:785c2b62c4d1 77
chrish 0:785c2b62c4d1 78 #define LCD_vFillRectangle lcd_fillRectangle
chrish 0:785c2b62c4d1 79 /*********************************************
chrish 0:785c2b62c4d1 80 * zeichnet ein gefülltes Rechteck
chrish 0:785c2b62c4d1 81 * Aufruf LCD_vFillRectangle(
chrish 0:785c2b62c4d1 82 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 83 *
chrish 0:785c2b62c4d1 84 * Beispiel: LCD_vFillRectangle(&myLCD, 10, 10, 50, 50, BLUE);
chrish 0:785c2b62c4d1 85 *********************************************/
chrish 0:785c2b62c4d1 86
chrish 0:785c2b62c4d1 87 #define LCD_vFillSprite lcd_fillSprite
chrish 0:785c2b62c4d1 88 /*********************************************
chrish 0:785c2b62c4d1 89 * gibt eine Grafik aus
chrish 0:785c2b62c4d1 90 * funktioniert nur im Mode LANDSCAPE
chrish 0:785c2b62c4d1 91 * Aufruf LCD_vFillSprite(
chrish 0:785c2b62c4d1 92 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 93 *
chrish 0:785c2b62c4d1 94 * Beispiel: LCD_vFillSprite(&myLCD, 200, dwPos, 69, 86, (int*) &awRobot[0]);
chrish 0:785c2b62c4d1 95 *********************************************/
chrish 0:785c2b62c4d1 96
chrish 0:785c2b62c4d1 97 #define LCD_vSetMode lcd_setMode
chrish 0:785c2b62c4d1 98 /*********************************************
chrish 0:785c2b62c4d1 99 * Hoch- (PORTRAIT) oder Querformat (LANDSCAPE)
chrish 0:785c2b62c4d1 100 * Aufruf LCD_vSetMode(
chrish 0:785c2b62c4d1 101 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 102 *
chrish 0:785c2b62c4d1 103 * Beispiel: LCD_vSetMode(&myLCD, LANDSCAPE);
chrish 0:785c2b62c4d1 104 *********************************************/
chrish 0:785c2b62c4d1 105
chrish 0:785c2b62c4d1 106 #define LCD_vDrawLine lcd_drawLine
chrish 0:785c2b62c4d1 107 /*********************************************
chrish 0:785c2b62c4d1 108 * zeichnet eine Linie
chrish 0:785c2b62c4d1 109 * Aufruf LCD_vDrawLine(
chrish 0:785c2b62c4d1 110 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 111 *
chrish 0:785c2b62c4d1 112 * Beispiel: LCD_vDrawLine(&myLCD, 30, 30, 70, 90, RED);
chrish 0:785c2b62c4d1 113 *********************************************/
chrish 0:785c2b62c4d1 114
chrish 0:785c2b62c4d1 115 #define LCD_vDrawTraingle lcd_drawTraingle
chrish 0:785c2b62c4d1 116 /*********************************************
chrish 0:785c2b62c4d1 117 * zeichnet ein Dreieck
chrish 0:785c2b62c4d1 118 * Aufruf LCD_vDrawTraingle(
chrish 0:785c2b62c4d1 119 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 120 *
chrish 0:785c2b62c4d1 121 * Beispiel: LCD_vDrawTraingle(&myLCD, 0, 200, 30, 220, 15, 240, BRIGHT_RED);
chrish 0:785c2b62c4d1 122 *********************************************/
chrish 0:785c2b62c4d1 123
chrish 0:785c2b62c4d1 124 #define LCD_vFillTraingle lcd_fillTraingle
chrish 0:785c2b62c4d1 125 /*********************************************
chrish 0:785c2b62c4d1 126 * zeichnet ein gefülltes Dreieck
chrish 0:785c2b62c4d1 127 * Aufruf LCD_vFillTraingle(
chrish 0:785c2b62c4d1 128 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 129 *
chrish 0:785c2b62c4d1 130 * Beispiel: LCD_vFillTraingle(&myLCD, 10, 100, 40, 120, 25, 150, GRAY1);
chrish 0:785c2b62c4d1 131 *********************************************/
chrish 0:785c2b62c4d1 132
chrish 0:785c2b62c4d1 133 #define LCD_vDrawCircle lcd_drawCircle
chrish 0:785c2b62c4d1 134 /*********************************************
chrish 0:785c2b62c4d1 135 * zeichnet ein gefülltes Dreieck
chrish 0:785c2b62c4d1 136 * Aufruf LCD_vDrawCircle(
chrish 0:785c2b62c4d1 137 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 138 *
chrish 0:785c2b62c4d1 139 * Beispiel: LCD_vDrawCircle(&myLCD, 160, 120, 50, BLACK);
chrish 0:785c2b62c4d1 140 *********************************************/
chrish 0:785c2b62c4d1 141
chrish 0:785c2b62c4d1 142 #define LCD_vSetPixel lcd_setPixel
chrish 0:785c2b62c4d1 143 /*********************************************
chrish 0:785c2b62c4d1 144 * zeichnet einen Punkt
chrish 0:785c2b62c4d1 145 * Aufruf LCD_vSetPixel(
chrish 0:785c2b62c4d1 146 * lcd_t * - Übergabestruktur
chrish 0:785c2b62c4d1 147 *
chrish 0:785c2b62c4d1 148 * Beispiel: LCD_vSetPixel(&myLCD, 160, 120, BLACK);
chrish 0:785c2b62c4d1 149 *********************************************/
chrish 0:785c2b62c4d1 150
chrish 0:785c2b62c4d1 151 #define LCD_vDrawVline lcd_drawHorizontalLine
chrish 0:785c2b62c4d1 152 //(lcd_t * lcd, int x, int y, int length, int color);
chrish 0:785c2b62c4d1 153
chrish 0:785c2b62c4d1 154 #define LCD_vDrawHline lcd_drawVerticalLine
chrish 0:785c2b62c4d1 155 //(lcd_t * lcd, int x, int y, int length, int color);
chrish 0:785c2b62c4d1 156
chrish 0:785c2b62c4d1 157 void lcd_init(lcd_t * lcd, spi_t * spi, PinName CS, PinName CD);
chrish 0:785c2b62c4d1 158
chrish 0:785c2b62c4d1 159 void lcd_cs(lcd_t * lcd, int value);
chrish 0:785c2b62c4d1 160
chrish 0:785c2b62c4d1 161 void lcd_cd(lcd_t * lcd, int value);
chrish 0:785c2b62c4d1 162
chrish 0:785c2b62c4d1 163 void lcd_setMode(lcd_t * lcd, lcd_mode mode);
chrish 0:785c2b62c4d1 164
chrish 0:785c2b62c4d1 165 void lcd_writeCommand(lcd_t * lcd, int value);
chrish 0:785c2b62c4d1 166
chrish 0:785c2b62c4d1 167 void lcd_writeData(lcd_t * lcd, int value);
chrish 0:785c2b62c4d1 168
chrish 0:785c2b62c4d1 169 void lcd_writeData16(lcd_t * lcd, int value);
chrish 0:785c2b62c4d1 170
chrish 0:785c2b62c4d1 171 void lcd_setColumn(lcd_t * lcd, int start, int end);
chrish 0:785c2b62c4d1 172
chrish 0:785c2b62c4d1 173 void lcd_setPage(lcd_t * lcd, int start, int end);
chrish 0:785c2b62c4d1 174
chrish 0:785c2b62c4d1 175 void lcd_fillScreen(lcd_t * lcd);
chrish 0:785c2b62c4d1 176
chrish 0:785c2b62c4d1 177 void lcd_drawLine(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
chrish 0:785c2b62c4d1 178
chrish 0:785c2b62c4d1 179 void lcd_drawVerticalLine(lcd_t * lcd, int x, int y, int length, int color);
chrish 0:785c2b62c4d1 180
chrish 0:785c2b62c4d1 181 void lcd_drawHorizontalLine(lcd_t * lcd, int x, int y, int length, int color);
chrish 0:785c2b62c4d1 182
chrish 0:785c2b62c4d1 183 void lcd_drawRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
chrish 0:785c2b62c4d1 184
chrish 0:785c2b62c4d1 185 void lcd_fillRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color);
chrish 0:785c2b62c4d1 186
chrish 0:785c2b62c4d1 187 void lcd_fillSprite(lcd_t * lcd, int x0, int y0, int length, int width, short int *pColor);
chrish 0:785c2b62c4d1 188
chrish 0:785c2b62c4d1 189 void lcd_drawTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color);
chrish 0:785c2b62c4d1 190
chrish 0:785c2b62c4d1 191 void lcd_fillTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color);
chrish 0:785c2b62c4d1 192
chrish 0:785c2b62c4d1 193 void lcd_setLandscape(lcd_t * lcd);
chrish 0:785c2b62c4d1 194
chrish 0:785c2b62c4d1 195 void lcd_setPortrait(lcd_t * lcd);
chrish 0:785c2b62c4d1 196
chrish 0:785c2b62c4d1 197 void lcd_setXY(lcd_t * lcd, int x, int y);
chrish 0:785c2b62c4d1 198
chrish 0:785c2b62c4d1 199 void lcd_setPixel(lcd_t * lcd, int x, int y, int color);
chrish 0:785c2b62c4d1 200
chrish 0:785c2b62c4d1 201 void lcd_drawCircle(lcd_t * lcd, int x, int y, int radius, int color);
chrish 0:785c2b62c4d1 202
chrish 0:785c2b62c4d1 203 void lcd_drawChar(lcd_t * lcd, char c, int x, int y, uint16_t size, uint16_t color);
chrish 0:785c2b62c4d1 204
chrish 0:785c2b62c4d1 205 void lcd_drawString(lcd_t * lcd, char * ca, int x, int y, uint16_t size, uint16_t color);
chrish 0:785c2b62c4d1 206
chrish 0:785c2b62c4d1 207 uint8_t lcd_drawNumber(lcd_t * lcd, long long_num, int x, int y, uint16_t size, uint16_t color);
chrish 0:785c2b62c4d1 208
chrish 0:785c2b62c4d1 209 uint8_t lcd_drawFloat(lcd_t * lcd, float floatNumber, uint8_t decimal, int x, int y, uint16_t size, uint16_t color);
chrish 0:785c2b62c4d1 210
chrish 0:785c2b62c4d1 211 #ifdef __cplusplus
chrish 0:785c2b62c4d1 212 }
chrish 0:785c2b62c4d1 213 #endif
chrish 0:785c2b62c4d1 214
chrish 0:785c2b62c4d1 215 #endif
chrish 0:785c2b62c4d1 216