Driver Library for our displays

Dependents:   dm_bubbles dm_calc dm_paint dm_sdcard_with_adapter ... more

Committer:
displaymodule
Date:
Mon Oct 12 08:35:35 2015 +0000
Revision:
14:2db7065edbec
Parent:
11:264e19992620
Important updates, compatible with the new mbed library?more platforms support. Recommended updates.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
displaymodule 11:264e19992620 1 /**********************************************************************************************
displaymodule 11:264e19992620 2 Copyright (c) 2014 DisplayModule. All rights reserved.
displaymodule 11:264e19992620 3
displaymodule 11:264e19992620 4 Redistribution and use of this source code, part of this source code or any compiled binary
displaymodule 11:264e19992620 5 based on this source code is permitted as long as the above copyright notice and following
displaymodule 11:264e19992620 6 disclaimer is retained.
displaymodule 11:264e19992620 7
displaymodule 11:264e19992620 8 DISCLAIMER:
displaymodule 11:264e19992620 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
displaymodule 11:264e19992620 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
displaymodule 11:264e19992620 11 ********************************************************************************************/
displaymodule 11:264e19992620 12
displaymodule 11:264e19992620 13 #ifndef DM_TFT_RA8875_h
displaymodule 11:264e19992620 14 #define DM_TFT_RA8875_h
displaymodule 11:264e19992620 15
displaymodule 11:264e19992620 16 #include "DmTftBase.h"
displaymodule 11:264e19992620 17
displaymodule 11:264e19992620 18 enum RA8875Size {
displaymodule 11:264e19992620 19 RA8875_480x272,
displaymodule 11:264e19992620 20 RA8875_800x480
displaymodule 11:264e19992620 21 };
displaymodule 11:264e19992620 22
displaymodule 11:264e19992620 23 class DmTftRa8875 : public DmTftBase
displaymodule 11:264e19992620 24 {
displaymodule 11:264e19992620 25 public:
displaymodule 11:264e19992620 26 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 11:264e19992620 27 DmTftRa8875(uint8_t cs=D10, uint8_t sel=D9);
displaymodule 11:264e19992620 28 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 14:2db7065edbec 29 DmTftRa8875(PinName cs, PinName sel, PinName mosi, PinName miso, PinName clk);
displaymodule 11:264e19992620 30 #endif
displaymodule 11:264e19992620 31 virtual ~DmTftRa8875();
displaymodule 11:264e19992620 32 virtual void init();
displaymodule 11:264e19992620 33 void w25CtrlByRa8875(void);
displaymodule 11:264e19992620 34 void w25CtrlByMCU(void);
displaymodule 11:264e19992620 35 void clearScreen(uint16_t color = BLACK);
displaymodule 11:264e19992620 36
displaymodule 11:264e19992620 37 void setFontColor(uint16_t background,uint16_t foreground);
displaymodule 11:264e19992620 38 void setFontZoom(uint8_t Hsize, uint8_t Vsize);
displaymodule 11:264e19992620 39 void eableKeyScan(bool on);
displaymodule 11:264e19992620 40 bool isKeyPress(void);
displaymodule 11:264e19992620 41 uint8_t getKeyValue(void);
displaymodule 11:264e19992620 42 void backlightOn(bool on);
displaymodule 11:264e19992620 43 void backlightAdjust(uint8_t value);
displaymodule 11:264e19992620 44 void drawImageContinuous(uint32_t startaddress, uint32_t count, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
displaymodule 11:264e19992620 45 void drawImageBlock(uint32_t startaddress, uint32_t count, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1,uint16_t pic_width, uint16_t block_width, uint16_t block_height);
displaymodule 11:264e19992620 46 uint16_t width(void);
displaymodule 11:264e19992620 47 uint16_t height(void);
displaymodule 11:264e19992620 48 void softReset(void);
displaymodule 11:264e19992620 49
displaymodule 11:264e19992620 50 void drawPoint(uint16_t x, uint16_t y, uint16_t radius=0);
displaymodule 11:264e19992620 51 void drawNumber(uint16_t x, uint16_t y, int num, int digitsToShow, bool leadingZeros=false);
displaymodule 11:264e19992620 52 void drawString(uint16_t x, uint16_t y, const char *p);
displaymodule 11:264e19992620 53 void drawStringCentered(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const char *p);
displaymodule 11:264e19992620 54
displaymodule 11:264e19992620 55 void drawRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 11:264e19992620 56 void fillRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 11:264e19992620 57
displaymodule 11:264e19992620 58 void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color);
displaymodule 11:264e19992620 59 void drawVerticalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color);
displaymodule 11:264e19992620 60 void drawHorizontalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color);
displaymodule 11:264e19992620 61
displaymodule 11:264e19992620 62 void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
displaymodule 11:264e19992620 63 void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color);
displaymodule 11:264e19992620 64
displaymodule 11:264e19992620 65 void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
displaymodule 11:264e19992620 66 void fillTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color);
displaymodule 11:264e19992620 67
displaymodule 11:264e19992620 68 void drawEllipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color);
displaymodule 11:264e19992620 69 void fillEllipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color);
displaymodule 11:264e19992620 70
displaymodule 11:264e19992620 71 void drawCurve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color);
displaymodule 11:264e19992620 72 void fillCurve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color);
displaymodule 11:264e19992620 73
displaymodule 11:264e19992620 74 void drawRoundRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t r1, uint16_t r2, uint16_t color);
displaymodule 11:264e19992620 75 void fillRoundRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t r1, uint16_t r2, uint16_t color);
displaymodule 11:264e19992620 76 private:
displaymodule 11:264e19992620 77 void writeBus(uint8_t data);
displaymodule 11:264e19992620 78 uint8_t readBus(void);
displaymodule 11:264e19992620 79 virtual void sendCommand(uint8_t index);
displaymodule 11:264e19992620 80 uint8_t readStatus(void);
displaymodule 11:264e19992620 81 virtual void sendData(uint16_t data);
displaymodule 11:264e19992620 82 void send8BitData(uint8_t data);
displaymodule 11:264e19992620 83 uint8_t readData(void);
displaymodule 11:264e19992620 84 virtual void writeReg(uint8_t reg, uint8_t val);
displaymodule 11:264e19992620 85 uint8_t readReg(uint8_t reg);
displaymodule 11:264e19992620 86
displaymodule 11:264e19992620 87 void rectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color, bool filled);
displaymodule 11:264e19992620 88 void circle(int16_t x, int16_t y, int16_t r, uint16_t color, bool filled);
displaymodule 11:264e19992620 89 void triangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, int16_t x2, int16_t y2, uint16_t color, bool filled);
displaymodule 11:264e19992620 90 void ellipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color, bool filled);
displaymodule 11:264e19992620 91 void curve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color, bool filled);
displaymodule 11:264e19992620 92 void roundrectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t r1, uint16_t r2, uint16_t color, bool filled);
displaymodule 11:264e19992620 93
displaymodule 11:264e19992620 94 virtual void setAddress(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1);
displaymodule 11:264e19992620 95 void int2str(int n, char *str);
displaymodule 11:264e19992620 96 uint16_t _width;
displaymodule 11:264e19992620 97 uint16_t _height;
displaymodule 11:264e19992620 98 uint16_t _bgColor;
displaymodule 11:264e19992620 99 uint16_t _fgColor;
displaymodule 11:264e19992620 100 enum RA8875Size _size;
displaymodule 11:264e19992620 101
displaymodule 14:2db7065edbec 102
displaymodule 14:2db7065edbec 103 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 11:264e19992620 104 uint8_t _cs, _sel;
displaymodule 11:264e19992620 105 regtype *_pinSEL;
displaymodule 11:264e19992620 106 regsize _bitmaskSEL;
displaymodule 11:264e19992620 107 uint8_t _spiSettings;
displaymodule 11:264e19992620 108 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 14:2db7065edbec 109 PinName _cs, _sel;
displaymodule 11:264e19992620 110 DigitalOut *_pinSEL;
displaymodule 14:2db7065edbec 111 SPI spi;
displaymodule 11:264e19992620 112 #endif
displaymodule 11:264e19992620 113 };
displaymodule 11:264e19992620 114
displaymodule 11:264e19992620 115 #endif