Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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
Generated on Sat Jul 16 2022 01:28:41 by
1.7.2