LCD library for Sharp LS013B7DH01
Dependents: mbed_weloop_screen_demo
Fork of SharpLCD by
SharpLCD.cpp@4:31947c1695fc, 2015-03-07 (annotated)
- Committer:
- sl0w0rm
- Date:
- Sat Mar 07 12:54:28 2015 +0000
- Revision:
- 4:31947c1695fc
- Parent:
- 0:62d7cfac67ca
memory lcd demo
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
rgrover1 | 0:62d7cfac67ca | 1 | /* mbed Microcontroller Library |
rgrover1 | 0:62d7cfac67ca | 2 | * Copyright (c) 2006-2013 ARM Limited |
rgrover1 | 0:62d7cfac67ca | 3 | * |
rgrover1 | 0:62d7cfac67ca | 4 | * Licensed under the Apache License, Version 2.0 (the "License"); |
rgrover1 | 0:62d7cfac67ca | 5 | * you may not use this file except in compliance with the License. |
rgrover1 | 0:62d7cfac67ca | 6 | * You may obtain a copy of the License at |
rgrover1 | 0:62d7cfac67ca | 7 | * |
rgrover1 | 0:62d7cfac67ca | 8 | * http://www.apache.org/licenses/LICENSE-2.0 |
rgrover1 | 0:62d7cfac67ca | 9 | * |
rgrover1 | 0:62d7cfac67ca | 10 | * Unless required by applicable law or agreed to in writing, software |
rgrover1 | 0:62d7cfac67ca | 11 | * distributed under the License is distributed on an "AS IS" BASIS, |
rgrover1 | 0:62d7cfac67ca | 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
rgrover1 | 0:62d7cfac67ca | 13 | * See the License for the specific language governing permissions and |
rgrover1 | 0:62d7cfac67ca | 14 | * limitations under the License. |
rgrover1 | 0:62d7cfac67ca | 15 | */ |
rgrover1 | 0:62d7cfac67ca | 16 | |
rgrover1 | 0:62d7cfac67ca | 17 | #include "SharpLCD.hpp" |
rgrover1 | 0:62d7cfac67ca | 18 | |
rgrover1 | 0:62d7cfac67ca | 19 | void |
rgrover1 | 0:62d7cfac67ca | 20 | SharpLCD::writeBuffer(const uint8_t *buffer, unsigned len) |
rgrover1 | 0:62d7cfac67ca | 21 | { |
rgrover1 | 0:62d7cfac67ca | 22 | chipSelect = 1; |
rgrover1 | 0:62d7cfac67ca | 23 | while (len--) { |
rgrover1 | 0:62d7cfac67ca | 24 | spi.write(*buffer++); |
rgrover1 | 0:62d7cfac67ca | 25 | } |
rgrover1 | 0:62d7cfac67ca | 26 | chipSelect = 0; |
rgrover1 | 0:62d7cfac67ca | 27 | } |
rgrover1 | 0:62d7cfac67ca | 28 | |
rgrover1 | 0:62d7cfac67ca | 29 | void |
rgrover1 | 0:62d7cfac67ca | 30 | SharpLCD::clear(void) |
rgrover1 | 0:62d7cfac67ca | 31 | { |
rgrover1 | 0:62d7cfac67ca | 32 | const uint8_t buf[2] = {M2_FLAG, DUMMY8}; |
rgrover1 | 0:62d7cfac67ca | 33 | |
rgrover1 | 0:62d7cfac67ca | 34 | writeBuffer(buf, sizeof(buf)); |
rgrover1 | 0:62d7cfac67ca | 35 | } |
rgrover1 | 0:62d7cfac67ca | 36 | |
rgrover1 | 0:62d7cfac67ca | 37 | void |
rgrover1 | 0:62d7cfac67ca | 38 | SharpLCD::drawFrameBuffer(const FrameBuffer &fb) |
rgrover1 | 0:62d7cfac67ca | 39 | { |
rgrover1 | 0:62d7cfac67ca | 40 | writeBuffer(fb.getBuffer(), SIZEOF_FRAMEBUFFER_FOR_ALLOC); |
rgrover1 | 0:62d7cfac67ca | 41 | } |
rgrover1 | 0:62d7cfac67ca | 42 | |
rgrover1 | 0:62d7cfac67ca | 43 | void |
rgrover1 | 0:62d7cfac67ca | 44 | SharpLCD::toggleVCOM(void) |
rgrover1 | 0:62d7cfac67ca | 45 | { |
rgrover1 | 0:62d7cfac67ca | 46 | static bool frameInversion = false; |
rgrover1 | 0:62d7cfac67ca | 47 | uint8_t buf[2] = {0, DUMMY8}; |
rgrover1 | 0:62d7cfac67ca | 48 | |
rgrover1 | 0:62d7cfac67ca | 49 | uint8_t mode = 0x0; |
rgrover1 | 0:62d7cfac67ca | 50 | if (frameInversion) { |
rgrover1 | 0:62d7cfac67ca | 51 | mode |= M1_FLAG; |
rgrover1 | 0:62d7cfac67ca | 52 | } |
rgrover1 | 0:62d7cfac67ca | 53 | frameInversion = !frameInversion; /* toggle frameInversion in |
rgrover1 | 0:62d7cfac67ca | 54 | * preparation for the next call */ |
rgrover1 | 0:62d7cfac67ca | 55 | |
rgrover1 | 0:62d7cfac67ca | 56 | buf[0] = mode; |
rgrover1 | 0:62d7cfac67ca | 57 | writeBuffer(buf, sizeof(buf)); |
rgrover1 | 0:62d7cfac67ca | 58 | } |