Basic driver working

display.h

Committer:
f3d
Date:
2021-02-03
Revision:
80:ff42f77928ad
Child:
81:7087ba9d18bb

File content as of revision 80:ff42f77928ad:

#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;
    }
    
};