TO CHECKOUT
Embed:
(wiki syntax)
Show/hide line numbers
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