Graphical demo for the LPC4088 Experiment Base Board with one of the Display Expansion Kits. This program displays how to write text in different fonts.

Dependencies:   EALib mbed

Committer:
embeddedartists
Date:
Thu Jun 25 10:30:15 2015 +0000
Revision:
0:5e5e9ec91fc8
First version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
embeddedartists 0:5e5e9ec91fc8 1 /*
embeddedartists 0:5e5e9ec91fc8 2 * Copyright 2013 Embedded Artists AB
embeddedartists 0:5e5e9ec91fc8 3 *
embeddedartists 0:5e5e9ec91fc8 4 * Licensed under the Apache License, Version 2.0 (the "License");
embeddedartists 0:5e5e9ec91fc8 5 * you may not use this file except in compliance with the License.
embeddedartists 0:5e5e9ec91fc8 6 * You may obtain a copy of the License at
embeddedartists 0:5e5e9ec91fc8 7 *
embeddedartists 0:5e5e9ec91fc8 8 * http://www.apache.org/licenses/LICENSE-2.0
embeddedartists 0:5e5e9ec91fc8 9 *
embeddedartists 0:5e5e9ec91fc8 10 * Unless required by applicable law or agreed to in writing, software
embeddedartists 0:5e5e9ec91fc8 11 * distributed under the License is distributed on an "AS IS" BASIS,
embeddedartists 0:5e5e9ec91fc8 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
embeddedartists 0:5e5e9ec91fc8 13 * See the License for the specific language governing permissions and
embeddedartists 0:5e5e9ec91fc8 14 * limitations under the License.
embeddedartists 0:5e5e9ec91fc8 15 */
embeddedartists 0:5e5e9ec91fc8 16
embeddedartists 0:5e5e9ec91fc8 17 /******************************************************************************
embeddedartists 0:5e5e9ec91fc8 18 * Includes
embeddedartists 0:5e5e9ec91fc8 19 *****************************************************************************/
embeddedartists 0:5e5e9ec91fc8 20
embeddedartists 0:5e5e9ec91fc8 21 #include "mbed.h"
embeddedartists 0:5e5e9ec91fc8 22 #include "EaLcdBoardGPIO.h"
embeddedartists 0:5e5e9ec91fc8 23
embeddedartists 0:5e5e9ec91fc8 24 /******************************************************************************
embeddedartists 0:5e5e9ec91fc8 25 * Defines and typedefs
embeddedartists 0:5e5e9ec91fc8 26 *****************************************************************************/
embeddedartists 0:5e5e9ec91fc8 27
embeddedartists 0:5e5e9ec91fc8 28
embeddedartists 0:5e5e9ec91fc8 29 EaLcdBoardGPIO::EaLcdBoardGPIO(PinName sda, PinName scl)
embeddedartists 0:5e5e9ec91fc8 30 : EaLcdBoard(sda, scl), /*pinWP(P4_15),*/ pin3v3(P2_0), pin5v(P2_21), pinDE(P2_11), pinContrast(P2_1)
embeddedartists 0:5e5e9ec91fc8 31 {
embeddedartists 0:5e5e9ec91fc8 32 pinContrast.period_ms(10);
embeddedartists 0:5e5e9ec91fc8 33 setWriteProtect(true);
embeddedartists 0:5e5e9ec91fc8 34 set3V3Signal(false);
embeddedartists 0:5e5e9ec91fc8 35 set5VSignal(false);
embeddedartists 0:5e5e9ec91fc8 36 setDisplayEnableSignal(false);
embeddedartists 0:5e5e9ec91fc8 37 setBacklightContrast(0);
embeddedartists 0:5e5e9ec91fc8 38 }
embeddedartists 0:5e5e9ec91fc8 39
embeddedartists 0:5e5e9ec91fc8 40
embeddedartists 0:5e5e9ec91fc8 41 void EaLcdBoardGPIO::setWriteProtect(bool enable)
embeddedartists 0:5e5e9ec91fc8 42 {
embeddedartists 0:5e5e9ec91fc8 43 // Not Applicable
embeddedartists 0:5e5e9ec91fc8 44 }
embeddedartists 0:5e5e9ec91fc8 45
embeddedartists 0:5e5e9ec91fc8 46 void EaLcdBoardGPIO::set3V3Signal(bool enabled) { //P2.0 L=3.3V on
embeddedartists 0:5e5e9ec91fc8 47 if (enabled) {
embeddedartists 0:5e5e9ec91fc8 48 pin3v3 = 0;
embeddedartists 0:5e5e9ec91fc8 49 } else {
embeddedartists 0:5e5e9ec91fc8 50 pin3v3 = 1;
embeddedartists 0:5e5e9ec91fc8 51 }
embeddedartists 0:5e5e9ec91fc8 52 }
embeddedartists 0:5e5e9ec91fc8 53
embeddedartists 0:5e5e9ec91fc8 54 void EaLcdBoardGPIO::set5VSignal(bool enabled) { //P2.21 H=5V on
embeddedartists 0:5e5e9ec91fc8 55 if (enabled) {
embeddedartists 0:5e5e9ec91fc8 56 pin5v = 1;
embeddedartists 0:5e5e9ec91fc8 57 } else {
embeddedartists 0:5e5e9ec91fc8 58 pin5v = 0;
embeddedartists 0:5e5e9ec91fc8 59 }
embeddedartists 0:5e5e9ec91fc8 60 }
embeddedartists 0:5e5e9ec91fc8 61
embeddedartists 0:5e5e9ec91fc8 62 void EaLcdBoardGPIO::setDisplayEnableSignal(bool enabled) { //P2.11 H=enabled
embeddedartists 0:5e5e9ec91fc8 63 LPC_IOCON->P2_11 &= ~7; /* GPIO2[11] @ P2.11 */
embeddedartists 0:5e5e9ec91fc8 64 if (enabled) {
embeddedartists 0:5e5e9ec91fc8 65 pinDE = 1;
embeddedartists 0:5e5e9ec91fc8 66 } else {
embeddedartists 0:5e5e9ec91fc8 67 pinDE = 0;
embeddedartists 0:5e5e9ec91fc8 68 }
embeddedartists 0:5e5e9ec91fc8 69 }
embeddedartists 0:5e5e9ec91fc8 70
embeddedartists 0:5e5e9ec91fc8 71 void EaLcdBoardGPIO::setBacklightContrast(uint32_t value) { //P2.1, set to 4.30 for now
embeddedartists 0:5e5e9ec91fc8 72 #if 0
embeddedartists 0:5e5e9ec91fc8 73 LPC_IOCON->P2_1 &= ~7; /* GPIO2[1] @ P2.1 */
embeddedartists 0:5e5e9ec91fc8 74 if (value > 50) {
embeddedartists 0:5e5e9ec91fc8 75 pinContrast = 1;
embeddedartists 0:5e5e9ec91fc8 76 } else {
embeddedartists 0:5e5e9ec91fc8 77 pinContrast = 0;
embeddedartists 0:5e5e9ec91fc8 78 }
embeddedartists 0:5e5e9ec91fc8 79 #else
embeddedartists 0:5e5e9ec91fc8 80 uint32_t tmp = LPC_IOCON->P2_1;
embeddedartists 0:5e5e9ec91fc8 81 tmp &= ~7;
embeddedartists 0:5e5e9ec91fc8 82 tmp |= 1;
embeddedartists 0:5e5e9ec91fc8 83 LPC_IOCON->P2_1 = tmp; /* PWM2[1] @ P2.1 */
embeddedartists 0:5e5e9ec91fc8 84 float f = value;
embeddedartists 0:5e5e9ec91fc8 85 pinContrast = f/100.0f;
embeddedartists 0:5e5e9ec91fc8 86 #endif
embeddedartists 0:5e5e9ec91fc8 87
embeddedartists 0:5e5e9ec91fc8 88 // if (value > 100) return;
embeddedartists 0:5e5e9ec91fc8 89
embeddedartists 0:5e5e9ec91fc8 90 // pca9532_setBlink0Duty(100-value);
embeddedartists 0:5e5e9ec91fc8 91 // pca9532_setBlink0Period(0);
embeddedartists 0:5e5e9ec91fc8 92 // pca9532_setBlink0Leds(LCDB_CTRL_BL_C);
embeddedartists 0:5e5e9ec91fc8 93 }
embeddedartists 0:5e5e9ec91fc8 94
embeddedartists 0:5e5e9ec91fc8 95
embeddedartists 0:5e5e9ec91fc8 96