Christopher H
/
DI_LAB2
TO CHECKOUT
lcd.h
- Committer:
- chrish
- Date:
- 2014-11-29
- Revision:
- 0:785c2b62c4d1
File content as of revision 0:785c2b62c4d1:
#ifndef LCD_H #define LCD_H #include "platform.h" #include "wait_api.h" #include "gpio_api.h" #include "spi_api.h" #define MIN_X 0 #define MIN_Y 0 #define MAX_X 239 #define MAX_Y 319 //Basic Colors #define RED 0xf800 #define GREEN 0x07e0 #define BLUE 0x001f #define BLACK 0x0000 #define YELLOW 0xffe0 #define WHITE 0xffff //Other Colors #define CYAN 0x07ff #define BRIGHT_RED 0xf810 #define GRAY1 0x8410 #define GRAY2 0x4208 #define FONT_SPACE 6 #define FONT_X 8 #define FONT_Y 8 #ifdef __cplusplus extern "C" { #endif extern uint8_t simpleFont[][8]; typedef enum { PORTRAIT = 0, LANDSCAPE = 1 } lcd_mode; typedef struct { lcd_mode mode; spi_t * spi; gpio_t CS; gpio_t CD; } lcd_t; #define LCD_vInit lcd_init /********************************************* * Display wird initialisiert * Aufruf LCD_vInit( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vInit(&myLCD, &mySPI, p22, p23); *********************************************/ #define LCD_vDrawFloat lcd_drawFloat /********************************************* * gibt eine Floating-Point-Zahl zum Display * Aufruf LCD_vDrawFloat( * lcd_t * - Übergabestruktur * *********************************************/ #define LCD_vDrawRectangle lcd_drawRectangle /********************************************* * zeichnet ein leeres Rechteck * Aufruf LCD_vDrawRectangle( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vDrawRectangle(&myLCD, 20, 20, 50, 50, BLACK); *********************************************/ #define LCD_vFillRectangle lcd_fillRectangle /********************************************* * zeichnet ein gefülltes Rechteck * Aufruf LCD_vFillRectangle( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vFillRectangle(&myLCD, 10, 10, 50, 50, BLUE); *********************************************/ #define LCD_vFillSprite lcd_fillSprite /********************************************* * gibt eine Grafik aus * funktioniert nur im Mode LANDSCAPE * Aufruf LCD_vFillSprite( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vFillSprite(&myLCD, 200, dwPos, 69, 86, (int*) &awRobot[0]); *********************************************/ #define LCD_vSetMode lcd_setMode /********************************************* * Hoch- (PORTRAIT) oder Querformat (LANDSCAPE) * Aufruf LCD_vSetMode( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vSetMode(&myLCD, LANDSCAPE); *********************************************/ #define LCD_vDrawLine lcd_drawLine /********************************************* * zeichnet eine Linie * Aufruf LCD_vDrawLine( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vDrawLine(&myLCD, 30, 30, 70, 90, RED); *********************************************/ #define LCD_vDrawTraingle lcd_drawTraingle /********************************************* * zeichnet ein Dreieck * Aufruf LCD_vDrawTraingle( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vDrawTraingle(&myLCD, 0, 200, 30, 220, 15, 240, BRIGHT_RED); *********************************************/ #define LCD_vFillTraingle lcd_fillTraingle /********************************************* * zeichnet ein gefülltes Dreieck * Aufruf LCD_vFillTraingle( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vFillTraingle(&myLCD, 10, 100, 40, 120, 25, 150, GRAY1); *********************************************/ #define LCD_vDrawCircle lcd_drawCircle /********************************************* * zeichnet ein gefülltes Dreieck * Aufruf LCD_vDrawCircle( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vDrawCircle(&myLCD, 160, 120, 50, BLACK); *********************************************/ #define LCD_vSetPixel lcd_setPixel /********************************************* * zeichnet einen Punkt * Aufruf LCD_vSetPixel( * lcd_t * - Übergabestruktur * * Beispiel: LCD_vSetPixel(&myLCD, 160, 120, BLACK); *********************************************/ #define LCD_vDrawVline lcd_drawHorizontalLine //(lcd_t * lcd, int x, int y, int length, int color); #define LCD_vDrawHline lcd_drawVerticalLine //(lcd_t * lcd, int x, int y, int length, int color); void lcd_init(lcd_t * lcd, spi_t * spi, PinName CS, PinName CD); void lcd_cs(lcd_t * lcd, int value); void lcd_cd(lcd_t * lcd, int value); void lcd_setMode(lcd_t * lcd, lcd_mode mode); void lcd_writeCommand(lcd_t * lcd, int value); void lcd_writeData(lcd_t * lcd, int value); void lcd_writeData16(lcd_t * lcd, int value); void lcd_setColumn(lcd_t * lcd, int start, int end); void lcd_setPage(lcd_t * lcd, int start, int end); void lcd_fillScreen(lcd_t * lcd); void lcd_drawLine(lcd_t * lcd, int x0, int y0, int x1, int y1, int color); void lcd_drawVerticalLine(lcd_t * lcd, int x, int y, int length, int color); void lcd_drawHorizontalLine(lcd_t * lcd, int x, int y, int length, int color); void lcd_drawRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color); void lcd_fillRectangle(lcd_t * lcd, int x0, int y0, int x1, int y1, int color); void lcd_fillSprite(lcd_t * lcd, int x0, int y0, int length, int width, short int *pColor); void lcd_drawTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color); void lcd_fillTraingle(lcd_t *lcd, int x0, int y0, int x1, int y1, int x2, int y2, int color); void lcd_setLandscape(lcd_t * lcd); void lcd_setPortrait(lcd_t * lcd); void lcd_setXY(lcd_t * lcd, int x, int y); void lcd_setPixel(lcd_t * lcd, int x, int y, int color); void lcd_drawCircle(lcd_t * lcd, int x, int y, int radius, int color); void lcd_drawChar(lcd_t * lcd, char c, int x, int y, uint16_t size, uint16_t color); void lcd_drawString(lcd_t * lcd, char * ca, int x, int y, uint16_t size, uint16_t color); uint8_t lcd_drawNumber(lcd_t * lcd, long long_num, int x, int y, uint16_t size, uint16_t color); uint8_t lcd_drawFloat(lcd_t * lcd, float floatNumber, uint8_t decimal, int x, int y, uint16_t size, uint16_t color); #ifdef __cplusplus } #endif #endif