Frank Duignan
/
NRF52832_ili9341
Basic driver working
Diff: display.h
- Revision:
- 80:ff42f77928ad
- Child:
- 81:7087ba9d18bb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/display.h Wed Feb 03 11:30:30 2021 +0000 @@ -0,0 +1,37 @@ +#include <stdint.h> +// Define a macro to allow easy definition of colours +// Format of colour value: <BGND 1 bit><Red 5 bits><Green 5 bits><Blue 5 bits> + +#define SCREEN_WIDTH 240 +#define SCREEN_HEIGHT 320 +class Display { +public: + Display() {}; + void begin(); + void putPixel(uint16_t x, uint16_t y, uint16_t colour); + void putImage(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const uint16_t *Image); + void fillRectangle(uint16_t x, uint16_t y, uint16_t width, uint16_t height, uint16_t Colour); + uint16_t RGBToWord(uint16_t R, uint16_t G, uint16_t B); + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t Colour); + void drawRectangle(uint16_t x, uint16_t y, uint16_t w, uint16_t h, uint16_t Colour); + void drawCircle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t Colour); + void fillCircle(uint16_t x0, uint16_t y0, uint16_t radius, uint16_t Colour); +private: + + void CommandMode(); + void DataMode(); + void LCD_Write_Cmd(uint8_t cmd); + void LCD_Write_Data(uint8_t data); + void resetDisplay(); + void openAperture(uint16_t x1,uint16_t y1,uint16_t x2,uint16_t y2); + void drawLineLowSlope(uint16_t x0, uint16_t y0, uint16_t x1,uint16_t y1, uint16_t Colour); + void drawLineHighSlope(uint16_t x0, uint16_t y0, uint16_t x1,uint16_t y1, uint16_t Colour); + int iabs(int x) // simple integer version of abs for use by graphics functions + { + if (x < 0) + return -x; + else + return x; + } + +}; \ No newline at end of file