Basic library for SHARP LCD LS027B4DH01/LS027B7DH01
Dependents: AkiSpiLcd_demo AkiSpiLcd_demo2 LCDRAM AkiSpiLcd_example
MemoryLcd.cpp@32:7e37fd2ddaa4, 2016-10-23 (annotated)
- 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?
User | Revision | Line number | New 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 | // } |