LA: Adding some "Ex" features to DmTftBase
Diff: DmTftRa8875.h
- Revision:
- 11:264e19992620
- Child:
- 14:2db7065edbec
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/DmTftRa8875.h Wed Jan 21 13:56:51 2015 +0000 @@ -0,0 +1,114 @@ +/********************************************************************************************** + Copyright (c) 2014 DisplayModule. All rights reserved. + + Redistribution and use of this source code, part of this source code or any compiled binary + based on this source code is permitted as long as the above copyright notice and following + disclaimer is retained. + + DISCLAIMER: + THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES + NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE. + ********************************************************************************************/ + +#ifndef DM_TFT_RA8875_h +#define DM_TFT_RA8875_h + +#include "DmTftBase.h" + +enum RA8875Size { + RA8875_480x272, + RA8875_800x480 +}; + +class DmTftRa8875 : public DmTftBase +{ +public: +#if defined (DM_TOOLCHAIN_ARDUINO) + DmTftRa8875(uint8_t cs=D10, uint8_t sel=D9); +#elif defined (DM_TOOLCHAIN_MBED) + DmTftRa8875(uint8_t cs=D10, uint8_t sel=D9, uint8_t miso=D12, uint8_t mosi=D11, uint8_t clk=D13); +#endif + virtual ~DmTftRa8875(); + virtual void init(); + void w25CtrlByRa8875(void); + void w25CtrlByMCU(void); + void clearScreen(uint16_t color = BLACK); + + void setFontColor(uint16_t background,uint16_t foreground); + void setFontZoom(uint8_t Hsize, uint8_t Vsize); + void eableKeyScan(bool on); + bool isKeyPress(void); + uint8_t getKeyValue(void); + void backlightOn(bool on); + void backlightAdjust(uint8_t value); + void drawImageContinuous(uint32_t startaddress, uint32_t count, uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); + 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); + uint16_t width(void); + uint16_t height(void); + void softReset(void); + + void drawPoint(uint16_t x, uint16_t y, uint16_t radius=0); + void drawNumber(uint16_t x, uint16_t y, int num, int digitsToShow, bool leadingZeros=false); + void drawString(uint16_t x, uint16_t y, const char *p); + void drawStringCentered(uint16_t x, uint16_t y, uint16_t width, uint16_t height, const char *p); + + void drawRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + void fillRectangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + + void drawLine(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t color); + void drawVerticalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color); + void drawHorizontalLine(uint16_t x, uint16_t y, uint16_t length, uint16_t color); + + void drawCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); + void fillCircle(uint16_t x0, uint16_t y0, uint16_t r, uint16_t color); + + void drawTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); + void fillTriangle(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1, uint16_t x2, uint16_t y2, uint16_t color); + + void drawEllipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color); + void fillEllipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color); + + void drawCurve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color); + void fillCurve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color); + + void drawRoundRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t r1, uint16_t r2, uint16_t color); + void fillRoundRectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t r1, uint16_t r2, uint16_t color); +private: + void writeBus(uint8_t data); + uint8_t readBus(void); + virtual void sendCommand(uint8_t index); + uint8_t readStatus(void); + virtual void sendData(uint16_t data); + void send8BitData(uint8_t data); + uint8_t readData(void); + virtual void writeReg(uint8_t reg, uint8_t val); + uint8_t readReg(uint8_t reg); + + void rectangle(int16_t x0, int16_t y0, int16_t x1, int16_t y1, uint16_t color, bool filled); + void circle(int16_t x, int16_t y, int16_t r, uint16_t color, bool filled); + 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); + void ellipse(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint16_t color, bool filled); + void curve(int16_t x0, int16_t y0, int16_t longAxis, int16_t shortAxis, uint8_t curvePart, uint16_t color, bool filled); + 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); + + virtual void setAddress(uint16_t x0, uint16_t y0, uint16_t x1, uint16_t y1); + void int2str(int n, char *str); + uint16_t _width; + uint16_t _height; + uint16_t _bgColor; + uint16_t _fgColor; + enum RA8875Size _size; + + uint8_t _cs, _sel; +#if defined (DM_TOOLCHAIN_ARDUINO) + regtype *_pinSEL; + regsize _bitmaskSEL; + uint8_t _spiSettings; +#elif defined (DM_TOOLCHAIN_MBED) + uint8_t _miso, _mosi, _clk; + DigitalOut *_pinSEL; + SPI *_spi; +#endif +}; + +#endif