TO CHECKOUT

Dependencies:   mbed

Revision:
0:785c2b62c4d1
diff -r 000000000000 -r 785c2b62c4d1 lcd.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lcd.h	Sat Nov 29 17:48:10 2014 +0000
@@ -0,0 +1,216 @@
+#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
+