Basic driver working

Committer:
f3d
Date:
Sat Feb 20 16:34:49 2021 +0000
Revision:
81:7087ba9d18bb
Parent:
80:ff42f77928ad
Display driver working with touch input

Who changed what in which revision?

UserRevisionLine numberNew contents of line
f3d 80:ff42f77928ad 1 #include <stdint.h>
f3d 80:ff42f77928ad 2 // Define a macro to allow easy definition of colours
f3d 80:ff42f77928ad 3 // Format of colour value: <BGND 1 bit><Red 5 bits><Green 5 bits><Blue 5 bits>
f3d 80:ff42f77928ad 4
f3d 80:ff42f77928ad 5 #define SCREEN_WIDTH 240
f3d 80:ff42f77928ad 6 #define SCREEN_HEIGHT 320
f3d 81:7087ba9d18bb 7 #define Y_TOUCH_MAX 1952
f3d 81:7087ba9d18bb 8 #define Y_TOUCH_MIN 88
f3d 81:7087ba9d18bb 9 #define X_TOUCH_MAX 1920
f3d 81:7087ba9d18bb 10 #define X_TOUCH_MIN 112
f3d 80:ff42f77928ad 11 class Display {
f3d 80:ff42f77928ad 12 public:
f3d 80:ff42f77928ad 13 Display() {};
f3d 80:ff42f77928ad 14 void begin();
f3d 80:ff42f77928ad 15 void putPixel(uint16_t x, uint16_t y, uint16_t colour);
f3d 80:ff42f77928ad 16 void putImage(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t *Image);
f3d 80:ff42f77928ad 17 void fillRectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t Colour);
f3d 80:ff42f77928ad 18 uint16_t RGBToWord(uint16_t R, uint16_t G, uint16_t B);
f3d 80:ff42f77928ad 19 void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t Colour);
f3d 80:ff42f77928ad 20 void drawRectangle(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t Colour);
f3d 80:ff42f77928ad 21 void drawCircle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t Colour);
f3d 80:ff42f77928ad 22 void fillCircle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t Colour);
f3d 81:7087ba9d18bb 23 // Graphics text functions
f3d 81:7087ba9d18bb 24 void print(const char *Text, uint16_t len, uint16_t x, uint16_t y, uint16_t ForeColour, uint16_t BackColour);
f3d 81:7087ba9d18bb 25 void print(uint16_t Number, uint16_t x, uint16_t y, uint16_t ForeColour, uint16_t BackColour);
f3d 81:7087ba9d18bb 26 int penDown(void);
f3d 81:7087ba9d18bb 27 uint16_t readYTouch(void);
f3d 81:7087ba9d18bb 28 uint16_t readXTouch(void);
f3d 80:ff42f77928ad 29 private:
f3d 80:ff42f77928ad 30
f3d 80:ff42f77928ad 31 void CommandMode();
f3d 80:ff42f77928ad 32 void DataMode();
f3d 80:ff42f77928ad 33 void LCD_Write_Cmd(uint8_t cmd);
f3d 80:ff42f77928ad 34 void LCD_Write_Data(uint8_t data);
f3d 80:ff42f77928ad 35 void resetDisplay();
f3d 80:ff42f77928ad 36 void openAperture(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2);
f3d 80:ff42f77928ad 37 void drawLineLowSlope(uint16_t x0, uint16_t y0, uint16_t x1,uint16_t y1, uint16_t Colour);
f3d 80:ff42f77928ad 38 void drawLineHighSlope(uint16_t x0, uint16_t y0, uint16_t x1,uint16_t y1, uint16_t Colour);
f3d 80:ff42f77928ad 39 int iabs(int x) // simple integer version of abs for use by graphics functions
f3d 80:ff42f77928ad 40 {
f3d 80:ff42f77928ad 41 if (x < 0)
f3d 80:ff42f77928ad 42 return -x;
f3d 80:ff42f77928ad 43 else
f3d 80:ff42f77928ad 44 return x;
f3d 80:ff42f77928ad 45 }
f3d 81:7087ba9d18bb 46 void initTouch(void);
f3d 80:ff42f77928ad 47
f3d 81:7087ba9d18bb 48
f3d 80:ff42f77928ad 49 };