From 520031a780b56a0d5c2f0de830d290f549f041bf Mon Sep 17 00:00:00 2001 From: KTOWN Date: Tue, 8 Oct 2013 17:37:03 +0200 Subject: [PATCH] Basic Adafruit_GFX support --- Adafruit_RA8875.cpp | 16 +++++++++++++++- Adafruit_RA8875.h | 18 ++++++++++++++++-- 2 files changed, 31 insertions(+), 3 deletions(-) diff --git a/Adafruit_RA8875.cpp b/Adafruit_RA8875.cpp index 4d10b77..4cc369d 100644 --- a/Adafruit_RA8875.cpp +++ b/Adafruit_RA8875.cpp @@ -2,7 +2,7 @@ #include #include "Adafruit_RA8875.h" -Adafruit_RA8875::Adafruit_RA8875(uint8_t CS, uint8_t RST) { +Adafruit_RA8875::Adafruit_RA8875(uint8_t CS, uint8_t RST) : Adafruit_GFX(480, 272) { _cs = CS; _rst = RST; } @@ -180,6 +180,20 @@ void Adafruit_RA8875::fillRect(void) { writeData(RA8875_DCR_LINESQUTRI_START | RA8875_DCR_FILL | RA8875_DCR_DRAWSQUARE); } +void Adafruit_RA8875::drawPixel(int16_t x, int16_t y, uint16_t color) +{ + writeReg(RA8875_CURH0, x); + writeReg(RA8875_CURH1, x >> 8); + writeReg(RA8875_CURV0, y); + writeReg(RA8875_CURV1, y >> 8); + writeCommand(RA8875_MRWC); + digitalWrite(_cs, LOW); + SPI.transfer(RA8875_DATAWRITE); + SPI.transfer(color >> 8); + SPI.transfer(color); + digitalWrite(_cs, HIGH); +} + void Adafruit_RA8875::circleHelper(int16_t x0, int16_t y0, int16_t r, uint16_t color, bool filled) { /* Set X */ diff --git a/Adafruit_RA8875.h b/Adafruit_RA8875.h index dbea8e9..3d7ca90 100644 --- a/Adafruit_RA8875.h +++ b/Adafruit_RA8875.h @@ -1,9 +1,20 @@ -#include +#if ARDUINO >= 100 + #include "Arduino.h" + #include "Print.h" +#else + #include "WProgram.h" +#endif + +#ifdef __AVR__ + #include +#endif + +#include // Sizes! enum RA8875sizes { RA8875_480x272, RA8875_800x480 }; -class Adafruit_RA8875 { +class Adafruit_RA8875 : public Adafruit_GFX { public: Adafruit_RA8875(uint8_t cs, uint8_t rst); @@ -16,6 +27,9 @@ class Adafruit_RA8875 { void graphicsMode(void); void setXY(uint16_t x, uint16_t y); void fillRect(void); + + /* Mandatory Adafruit_GFX functions */ + void drawPixel(int16_t x, int16_t y, uint16_t color); /* HW accelerated wrapper functions */ void drawCircle(int16_t x0, int16_t y0, int16_t r, uint16_t color);