UniGraphic-Fork for ST7920-LCD-controller and SH1106. Tested with 128x64 LCD with SPI and 128x64-OLED with IIC
Dependents: UniGraphic-St7920-Test AfficheurUTILECO
Fork of UniGraphic by
Fork of the UniGraphic-Library for monochrome LCDs with ST7920 controller and 128x64-IIC-OLED-Display with SH1106-Controller
Had to adapt LCD for following reasons:
- Give access to screenbuffer buffer[] to parent class
- pixel() and pixel_read() as they are hardware-dependent
- added reset-pin to IIC-Interface
GraphicDisplay:: sends buffer to LCD when auto_update is set to true.
Testprogram for ST7920 can be found here:
https://developer.mbed.org/users/charly/code/UniGraphic-St7920-Test/
Diff: Protocols/SPI8.cpp
- Revision:
- 4:12ba0ecc2c1f
- Parent:
- 1:ff019d22b275
- Child:
- 5:b222a9461d6b
diff -r 48f3282c2be8 -r 12ba0ecc2c1f Protocols/SPI8.cpp --- a/Protocols/SPI8.cpp Sat Feb 14 17:42:21 2015 +0000 +++ b/Protocols/SPI8.cpp Sun Feb 15 20:06:07 2015 +0000 @@ -1,3 +1,21 @@ + /* mbed UniGraphic library - SPI8 protocol class + * Copyright (c) 2015 Giuliano Dianda + * Released under the MIT License: http://mbed.org/license/mit + * + * Derived work of: + * + * mbed library for 240*320 pixel display TFT based on ILI9341 LCD Controller + * Copyright (c) 2013 Peter Drescher - DC2PD + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + #include "SPI8.h" //#define USE_CS @@ -36,37 +54,6 @@ _CS = 1; #endif } -void SPI8::wr_data8(unsigned char data, unsigned int count) -{ -#ifdef USE_CS - _CS = 0; -#endif - _DC.write(1); // 1=data - while(count) - { - _spi.write(data); // write 8bit - count--; - } -#ifdef USE_CS - _CS = 1; -#endif -} -void SPI8::wr_data8buf(unsigned char* data, unsigned int lenght) -{ -#ifdef USE_CS - _CS = 0; -#endif - _DC.write(1); // 1=data - while(lenght) - { - _spi.write(*data++); // write 8bit - // data++; - lenght--; - } -#ifdef USE_CS - _CS = 1; -#endif -} void SPI8::wr_cmd16(unsigned short cmd) { #ifdef USE_CS @@ -91,7 +78,19 @@ _CS = 1; #endif } -void SPI8::wr_data16(unsigned short data, unsigned int count) +void SPI8::wr_gram(unsigned short data) +{ +#ifdef USE_CS + _CS = 0; +#endif + _DC.write(1); // 1=data + _spi.write(data>>8); // write 8bit + _spi.write(data&0xFF); // write 8bit +#ifdef USE_CS + _CS = 1; +#endif +} +void SPI8::wr_gram(unsigned short data, unsigned int count) { #ifdef USE_CS _CS = 0; @@ -119,7 +118,7 @@ _CS = 1; #endif } -void SPI8::wr_data16buf(unsigned short* data, unsigned int lenght) +void SPI8::wr_grambuf(unsigned short* data, unsigned int lenght) { #ifdef USE_CS _CS = 0;