Frank Duignan
/
NRF52832_ili9341
Basic driver working
display.h@81:7087ba9d18bb, 2021-02-20 (annotated)
- 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?
User | Revision | Line number | New 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 | }; |