Library for Adafruit SHARP Memory Displays. This is a port of the original Arduino library available at: https://github.com/adafruit/Adafruit_SHARP_Memory_Display .
Dependents: Adafruit_SHARP_Memory_Display_demo Analog_Clock
Library for Adafruit Sharp Memory Displays. A demo is available here: https://developer.mbed.org/users/marcpl/code/Adafruit_SHARP_Memory_Display_demo/
Adafruit_SharpMem.h@3:99cc0e72e165, 2015-08-30 (annotated)
- Committer:
- marcpl
- Date:
- Sun Aug 30 10:39:38 2015 +0000
- Revision:
- 3:99cc0e72e165
- Parent:
- 0:070c76a8d782
Make the screen buffer static.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
marcpl | 0:070c76a8d782 | 1 | /********************************************************************* |
marcpl | 0:070c76a8d782 | 2 | This is an Arduino library for our Monochrome SHARP Memory Displays |
marcpl | 0:070c76a8d782 | 3 | |
marcpl | 0:070c76a8d782 | 4 | Pick one up today in the adafruit shop! |
marcpl | 0:070c76a8d782 | 5 | ------> http://www.adafruit.com/products/1393 |
marcpl | 0:070c76a8d782 | 6 | |
marcpl | 0:070c76a8d782 | 7 | These displays use SPI to communicate, 3 pins are required to |
marcpl | 0:070c76a8d782 | 8 | interface |
marcpl | 0:070c76a8d782 | 9 | |
marcpl | 0:070c76a8d782 | 10 | Adafruit invests time and resources providing this open source code, |
marcpl | 0:070c76a8d782 | 11 | please support Adafruit and open-source hardware by purchasing |
marcpl | 0:070c76a8d782 | 12 | products from Adafruit! |
marcpl | 0:070c76a8d782 | 13 | |
marcpl | 0:070c76a8d782 | 14 | Written by Limor Fried/Ladyada for Adafruit Industries. |
marcpl | 0:070c76a8d782 | 15 | BSD license, check license.txt for more information |
marcpl | 0:070c76a8d782 | 16 | All text above, and the splash screen must be included in any redistribution |
marcpl | 0:070c76a8d782 | 17 | *********************************************************************/ |
marcpl | 0:070c76a8d782 | 18 | |
marcpl | 0:070c76a8d782 | 19 | /* |
marcpl | 0:070c76a8d782 | 20 | * Modified by Marc PLOUHINEC 23/06/2015 for use in mbed |
marcpl | 0:070c76a8d782 | 21 | */ |
marcpl | 0:070c76a8d782 | 22 | |
marcpl | 0:070c76a8d782 | 23 | #ifndef ADAFRUIT_SHARP_MEM_H |
marcpl | 0:070c76a8d782 | 24 | #define ADAFRUIT_SHARP_MEM_H |
marcpl | 0:070c76a8d782 | 25 | |
marcpl | 0:070c76a8d782 | 26 | #include "mbed.h" |
marcpl | 0:070c76a8d782 | 27 | #include "Adafruit_GFX.h" |
marcpl | 0:070c76a8d782 | 28 | |
marcpl | 0:070c76a8d782 | 29 | // LCD Dimensions |
marcpl | 0:070c76a8d782 | 30 | #define SHARPMEM_LCDWIDTH (96) |
marcpl | 0:070c76a8d782 | 31 | #define SHARPMEM_LCDHEIGHT (96) |
marcpl | 0:070c76a8d782 | 32 | |
marcpl | 0:070c76a8d782 | 33 | class Adafruit_SharpMem : public Adafruit_GFX { |
marcpl | 0:070c76a8d782 | 34 | public: |
marcpl | 0:070c76a8d782 | 35 | Adafruit_SharpMem(PinName enable, PinName cs, PinName mosi, PinName miso_unused, PinName sclk, PinName _unused = NC); |
marcpl | 0:070c76a8d782 | 36 | void begin(); |
marcpl | 0:070c76a8d782 | 37 | virtual void drawPixel(int16_t x, int16_t y, uint16_t color); |
marcpl | 0:070c76a8d782 | 38 | uint8_t getPixel(uint16_t x, uint16_t y); |
marcpl | 0:070c76a8d782 | 39 | void clearDisplay(); |
marcpl | 0:070c76a8d782 | 40 | void refresh(); |
marcpl | 0:070c76a8d782 | 41 | void enableDisplay(); |
marcpl | 0:070c76a8d782 | 42 | void disableDisplay(); |
marcpl | 0:070c76a8d782 | 43 | |
marcpl | 0:070c76a8d782 | 44 | private: |
marcpl | 0:070c76a8d782 | 45 | SPI spi; |
marcpl | 0:070c76a8d782 | 46 | DigitalOut displayEnable; |
marcpl | 0:070c76a8d782 | 47 | DigitalOut chipSelect; |
marcpl | 0:070c76a8d782 | 48 | uint8_t _sharpmem_vcom; |
marcpl | 0:070c76a8d782 | 49 | |
marcpl | 0:070c76a8d782 | 50 | static uint8_t bitReverse8(uint8_t byte) { |
marcpl | 0:070c76a8d782 | 51 | #if (__CORTEX_M >= 0x03) |
marcpl | 0:070c76a8d782 | 52 | return (uint8_t)(__RBIT(byte) >> 24); |
marcpl | 0:070c76a8d782 | 53 | #else /* #if (__CORTEX_M < 0x03) */ |
marcpl | 0:070c76a8d782 | 54 | uint8_t rev8 = 0; |
marcpl | 0:070c76a8d782 | 55 | |
marcpl | 0:070c76a8d782 | 56 | for (unsigned i = 0; i < 8; i++) { |
marcpl | 0:070c76a8d782 | 57 | if (byte & (1 << i)) { |
marcpl | 0:070c76a8d782 | 58 | rev8 |= 1 << (7 - i); |
marcpl | 0:070c76a8d782 | 59 | } |
marcpl | 0:070c76a8d782 | 60 | } |
marcpl | 0:070c76a8d782 | 61 | |
marcpl | 0:070c76a8d782 | 62 | return rev8; |
marcpl | 0:070c76a8d782 | 63 | #endif /* #if (__CORTEX_M >= 0x03) */ |
marcpl | 0:070c76a8d782 | 64 | } |
marcpl | 0:070c76a8d782 | 65 | }; |
marcpl | 0:070c76a8d782 | 66 | |
marcpl | 0:070c76a8d782 | 67 | #endif |