![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
TO CHECKOUT
lcd.h@0:785c2b62c4d1, 2014-11-29 (annotated)
- Committer:
- chrish
- Date:
- Sat Nov 29 17:48:10 2014 +0000
- Revision:
- 0:785c2b62c4d1
TO CHECKOUT;
Who changed what in which revision?
User | Revision | Line number | New 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 |