Basic library for SHARP LCD LS027B4DH01/LS027B7DH01

Dependents:   AkiSpiLcd_demo AkiSpiLcd_demo2 LCDRAM AkiSpiLcd_example

Committer:
Kazuki Yamamoto
Date:
Sun Oct 23 17:25:47 2016 +0900
Revision:
32:7e37fd2ddaa4
[ NEW ] MemoryLcd.h/cpp for base class declaration

new class LCD_MODE has basic command definitions
new class AkiLCD_MODE inherits LCD_MODE and overrides command definitions

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Kazuki Yamamoto 32:7e37fd2ddaa4 1 /*
Kazuki Yamamoto 32:7e37fd2ddaa4 2 Copyright (c) 2016 Kazuki Yamamoto <k.yamamoto.08136891@gmail.com>
Kazuki Yamamoto 32:7e37fd2ddaa4 3 Permission is hereby granted, free of charge, to any person obtaining
Kazuki Yamamoto 32:7e37fd2ddaa4 4 a copy of this software and associated documentation files
Kazuki Yamamoto 32:7e37fd2ddaa4 5 (the "Software"), to deal in the Software without restriction,
Kazuki Yamamoto 32:7e37fd2ddaa4 6 including without limitation the rights to use, copy, modify, merge,
Kazuki Yamamoto 32:7e37fd2ddaa4 7 publish, distribute, sublicense, and/or sell copies of the Software,
Kazuki Yamamoto 32:7e37fd2ddaa4 8 and to permit persons to whom the Software is furnished to do so,
Kazuki Yamamoto 32:7e37fd2ddaa4 9 subject to the following conditions:
Kazuki Yamamoto 32:7e37fd2ddaa4 10 The above copyright notice and this permission notice shall be
Kazuki Yamamoto 32:7e37fd2ddaa4 11 included in all copies or substantial portions of the Software.
Kazuki Yamamoto 32:7e37fd2ddaa4 12 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
Kazuki Yamamoto 32:7e37fd2ddaa4 13 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
Kazuki Yamamoto 32:7e37fd2ddaa4 14 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
Kazuki Yamamoto 32:7e37fd2ddaa4 15 IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
Kazuki Yamamoto 32:7e37fd2ddaa4 16 CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
Kazuki Yamamoto 32:7e37fd2ddaa4 17 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
Kazuki Yamamoto 32:7e37fd2ddaa4 18 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Kazuki Yamamoto 32:7e37fd2ddaa4 19 */
Kazuki Yamamoto 32:7e37fd2ddaa4 20 /** this is base class for Memory LCDs from SHARP or JDI
Kazuki Yamamoto 32:7e37fd2ddaa4 21 * by Kazuki Yamamoto, or _K4ZUKI_
Kazuki Yamamoto 32:7e37fd2ddaa4 22 */
Kazuki Yamamoto 32:7e37fd2ddaa4 23 // #include "MemoryLcd.h"
Kazuki Yamamoto 32:7e37fd2ddaa4 24 //
Kazuki Yamamoto 32:7e37fd2ddaa4 25 // MemoryLCD::MemoryLCD(PinName mosi, PinName miso, PinName sck, PinName csl)
Kazuki Yamamoto 32:7e37fd2ddaa4 26 // : _spi(mosi, miso, sck), _csl(csl) {
Kazuki Yamamoto 32:7e37fd2ddaa4 27 // _csl = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 28 // _spi.format(8, 0);
Kazuki Yamamoto 32:7e37fd2ddaa4 29 // _spi.frequency(1000000);
Kazuki Yamamoto 32:7e37fd2ddaa4 30 // _comflag = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 31 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 32 //
Kazuki Yamamoto 32:7e37fd2ddaa4 33 // void MemoryLCD::cls() {
Kazuki Yamamoto 32:7e37fd2ddaa4 34 // _csl = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 35 //
Kazuki Yamamoto 32:7e37fd2ddaa4 36 // _spi.write(LCD_MODE::CLEAR_SCREEN | (_comflag << 6));
Kazuki Yamamoto 32:7e37fd2ddaa4 37 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 38 //
Kazuki Yamamoto 32:7e37fd2ddaa4 39 // _csl = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 40 //
Kazuki Yamamoto 32:7e37fd2ddaa4 41 // cominvert();
Kazuki Yamamoto 32:7e37fd2ddaa4 42 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 43 //
Kazuki Yamamoto 32:7e37fd2ddaa4 44 // void MemoryLCD::directUpdateSingle(int line, uint8_t *data) {
Kazuki Yamamoto 32:7e37fd2ddaa4 45 // _csl = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 46 // if (line == 0) line = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 47 //
Kazuki Yamamoto 32:7e37fd2ddaa4 48 // _spi.write(LCD_MODE::UPDATE | (_comflag << 6));
Kazuki Yamamoto 32:7e37fd2ddaa4 49 // _spi.write(line);
Kazuki Yamamoto 32:7e37fd2ddaa4 50 //
Kazuki Yamamoto 32:7e37fd2ddaa4 51 // for (int i = 0; i < 50; i++) {
Kazuki Yamamoto 32:7e37fd2ddaa4 52 // _spi.write(*(data + i));
Kazuki Yamamoto 32:7e37fd2ddaa4 53 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 54 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 55 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 56 //
Kazuki Yamamoto 32:7e37fd2ddaa4 57 // _csl = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 58 //
Kazuki Yamamoto 32:7e37fd2ddaa4 59 // cominvert();
Kazuki Yamamoto 32:7e37fd2ddaa4 60 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 61 //
Kazuki Yamamoto 32:7e37fd2ddaa4 62 // void MemoryLCD::directUpdateMulti(int line, int length, uint8_t *data) {
Kazuki Yamamoto 32:7e37fd2ddaa4 63 // _modeflag = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 64 // _clearflag = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 65 //
Kazuki Yamamoto 32:7e37fd2ddaa4 66 // if (line == 0) line = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 67 //
Kazuki Yamamoto 32:7e37fd2ddaa4 68 // if (length > 0) {
Kazuki Yamamoto 32:7e37fd2ddaa4 69 // _csl = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 70 //
Kazuki Yamamoto 32:7e37fd2ddaa4 71 // for (int j = 1; j <= length; j++) {
Kazuki Yamamoto 32:7e37fd2ddaa4 72 // _spi.write(LCD_MODE::UPDATE | (_comflag << 6));
Kazuki Yamamoto 32:7e37fd2ddaa4 73 // _spi.write(line);
Kazuki Yamamoto 32:7e37fd2ddaa4 74 // for (int i = 0; i < 50; i++) {
Kazuki Yamamoto 32:7e37fd2ddaa4 75 // _spi.write(*(data + (50 * j + i))); // hogepic[50*j+i]
Kazuki Yamamoto 32:7e37fd2ddaa4 76 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 77 // line += 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 78 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 79 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 80 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 81 //
Kazuki Yamamoto 32:7e37fd2ddaa4 82 // _csl = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 83 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 84 // cominvert();
Kazuki Yamamoto 32:7e37fd2ddaa4 85 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 86 //
Kazuki Yamamoto 32:7e37fd2ddaa4 87 // void MemoryLCD::cominvert() {
Kazuki Yamamoto 32:7e37fd2ddaa4 88 // _csl = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 89 //
Kazuki Yamamoto 32:7e37fd2ddaa4 90 // _spi.write(LCD_MODE::COM_INVERT | (_comflag << 6));
Kazuki Yamamoto 32:7e37fd2ddaa4 91 // _spi.write(0x00);
Kazuki Yamamoto 32:7e37fd2ddaa4 92 //
Kazuki Yamamoto 32:7e37fd2ddaa4 93 // _csl = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 94 // if (_comflag == 0) {
Kazuki Yamamoto 32:7e37fd2ddaa4 95 // _comflag = 1;
Kazuki Yamamoto 32:7e37fd2ddaa4 96 // } else {
Kazuki Yamamoto 32:7e37fd2ddaa4 97 // _comflag = 0;
Kazuki Yamamoto 32:7e37fd2ddaa4 98 // }
Kazuki Yamamoto 32:7e37fd2ddaa4 99 // }