Driver Library for our displays
Dependents: dm_bubbles dm_calc dm_paint dm_sdcard_with_adapter ... more
DmTftRa8875.h@14:2db7065edbec, 2015-10-12 (annotated)
- 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?
User | Revision | Line number | New 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 |