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 .

Dependencies:   Adafruit-GFX

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/

Committer:
marcpl
Date:
Tue Jun 23 16:49:02 2015 +0000
Revision:
0:070c76a8d782
Port the "Adafruit_SHARP_Memory_Display" library that was originally written for Arduino. For more information, see https://github.com/adafruit/Adafruit_SHARP_Memory_Display.

Who changed what in which revision?

UserRevisionLine numberNew 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