Initial

Dependencies:   TextLCD2

Committer:
reedas
Date:
Tue Jan 14 11:30:06 2020 +0000
Revision:
1:f9ef03b6aab8
Parent:
0:e9613d017b5e
Initial Commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
reedas 0:e9613d017b5e 1 /***************************************************************************//**
reedas 0:e9613d017b5e 2 * \file DisplayInterface.h
reedas 0:e9613d017b5e 3 * \version 1.0
reedas 0:e9613d017b5e 4 *
reedas 0:e9613d017b5e 5 * \brief
reedas 0:e9613d017b5e 6 * Objective:
reedas 0:e9613d017b5e 7 * This is display software i8080 interface source file
reedas 0:e9613d017b5e 8 *
reedas 0:e9613d017b5e 9 ********************************************************************************
reedas 0:e9613d017b5e 10 * \copyright
reedas 0:e9613d017b5e 11 * Copyright 2018-2019 Cypress Semiconductor Corporation
reedas 0:e9613d017b5e 12 * SPDX-License-Identifier: Apache-2.0
reedas 0:e9613d017b5e 13 *
reedas 0:e9613d017b5e 14 * Licensed under the Apache License, Version 2.0 (the "License");
reedas 0:e9613d017b5e 15 * you may not use this file except in compliance with the License.
reedas 0:e9613d017b5e 16 * You may obtain a copy of the License at
reedas 0:e9613d017b5e 17 *
reedas 0:e9613d017b5e 18 * http://www.apache.org/licenses/LICENSE-2.0
reedas 0:e9613d017b5e 19 *
reedas 0:e9613d017b5e 20 * Unless required by applicable law or agreed to in writing, software
reedas 0:e9613d017b5e 21 * distributed under the License is distributed on an "AS IS" BASIS,
reedas 0:e9613d017b5e 22 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
reedas 0:e9613d017b5e 23 * See the License for the specific language governing permissions and
reedas 0:e9613d017b5e 24 * limitations under the License.
reedas 0:e9613d017b5e 25 *******************************************************************************/
reedas 0:e9613d017b5e 26
reedas 0:e9613d017b5e 27
reedas 0:e9613d017b5e 28 #include "cy8ckit_028_tft.h"
reedas 0:e9613d017b5e 29 #include <mbed_wait_api.h>
reedas 0:e9613d017b5e 30 #include "mbed.h"
reedas 0:e9613d017b5e 31 #include "PortInOut.h"
reedas 0:e9613d017b5e 32
reedas 0:e9613d017b5e 33
reedas 0:e9613d017b5e 34 DigitalInOut LCD_REG0(P9_0);
reedas 0:e9613d017b5e 35 DigitalInOut LCD_REG1(P9_1);
reedas 0:e9613d017b5e 36 DigitalInOut LCD_REG2(P9_2);
reedas 0:e9613d017b5e 37 DigitalInOut LCD_REG3(P9_4);
reedas 0:e9613d017b5e 38 DigitalInOut LCD_REG4(P9_5);
reedas 0:e9613d017b5e 39 DigitalInOut LCD_REG5(P0_2);
reedas 0:e9613d017b5e 40 DigitalInOut LCD_REG6(P13_0);
reedas 0:e9613d017b5e 41 DigitalInOut LCD_REG7(P13_1);
reedas 0:e9613d017b5e 42 PortInOut P0(Port0, 0x04);
reedas 0:e9613d017b5e 43 PortInOut P9(Port9, 0x37);
reedas 0:e9613d017b5e 44 PortInOut P13(Port13, 0x03);
reedas 0:e9613d017b5e 45
reedas 0:e9613d017b5e 46 DigitalOut LCD_NWR(P12_0);
reedas 0:e9613d017b5e 47 DigitalOut LCD_DC(P12_1);
reedas 0:e9613d017b5e 48 DigitalOut LCD_RESET(P12_2);
reedas 0:e9613d017b5e 49 DigitalOut LCD_NRD(P12_3);
reedas 0:e9613d017b5e 50
reedas 0:e9613d017b5e 51 /*******************************************************************************
reedas 0:e9613d017b5e 52 * Function Name: DataWrite
reedas 0:e9613d017b5e 53 ****************************************************************************/
reedas 0:e9613d017b5e 54 /**
reedas 0:e9613d017b5e 55 *
reedas 0:e9613d017b5e 56 * \brief
reedas 0:e9613d017b5e 57 * Writes one byte of data to the software i8080 interface.
reedas 0:e9613d017b5e 58 *
reedas 0:e9613d017b5e 59 * \details
reedas 0:e9613d017b5e 60 * This function:
reedas 0:e9613d017b5e 61 * - Writes data to the data bus
reedas 0:e9613d017b5e 62 * - Sends low pulse to the LCD_NWR line to write data
reedas 0:e9613d017b5e 63 *
reedas 0:e9613d017b5e 64 * Changed from individual bit banging to port masked writes to
reedas 0:e9613d017b5e 65 * P9[5,4,2,1,0], P13[1,0], P0[2] to optimise slightly
reedas 0:e9613d017b5e 66 *
reedas 0:e9613d017b5e 67 * \todo
reedas 0:e9613d017b5e 68 * All this should be replaced with a udb register to save all the shifting
reedas 0:e9613d017b5e 69 * and individual bit writing.
reedas 0:e9613d017b5e 70 *
reedas 0:e9613d017b5e 71 *******************************************************************************/
reedas 0:e9613d017b5e 72 void DataWrite(U8 data)
reedas 0:e9613d017b5e 73 {
reedas 0:e9613d017b5e 74 // LCD_REG0 = (data & 0x01);
reedas 0:e9613d017b5e 75 // LCD_REG1 = ((data>>1) & 0x01);
reedas 0:e9613d017b5e 76 // LCD_REG2 = ((data>>2) & 0x01);
reedas 0:e9613d017b5e 77 // LCD_REG3 = ((data>>3) & 0x01);
reedas 0:e9613d017b5e 78 // LCD_REG4 = ((data>>4) & 0x01);
reedas 0:e9613d017b5e 79
reedas 0:e9613d017b5e 80 /* read the appropriate port and only change the bits we need to then write the
reedas 0:e9613d017b5e 81 * affected bits back to the port retaining any unaffected bit values
reedas 0:e9613d017b5e 82 */
reedas 0:e9613d017b5e 83 int pbyte = P9.read();
reedas 0:e9613d017b5e 84 int bit012 = (data & 0x07);
reedas 0:e9613d017b5e 85 int bit34 = (data & 0x18) << 1;
reedas 0:e9613d017b5e 86 pbyte = (pbyte & 0xc8) | bit34 | bit012;
reedas 0:e9613d017b5e 87 P9.write(pbyte);
reedas 0:e9613d017b5e 88 // LCD_REG5 = ((data>>5) & 0x01);
reedas 0:e9613d017b5e 89 pbyte = P0.read();
reedas 0:e9613d017b5e 90 int bit5 = (data & 0x20) >> 3 ;
reedas 0:e9613d017b5e 91 pbyte = (pbyte & 0xfb) | bit5 ;
reedas 0:e9613d017b5e 92 P0.write(pbyte);
reedas 0:e9613d017b5e 93
reedas 0:e9613d017b5e 94 // LCD_REG6 = ((data>>6) & 0x01);
reedas 0:e9613d017b5e 95 // LCD_REG7 = ((data>>7) & 0x01);
reedas 0:e9613d017b5e 96 pbyte = P13.read();
reedas 0:e9613d017b5e 97 int bit67 = (data & 0xc0) >> 6 ;
reedas 0:e9613d017b5e 98 pbyte = (pbyte & 0xfc) | bit67 ;
reedas 0:e9613d017b5e 99 P13.write(pbyte);
reedas 0:e9613d017b5e 100 LCD_NWR = 0u;
reedas 0:e9613d017b5e 101 LCD_NWR = 1u;
reedas 0:e9613d017b5e 102
reedas 0:e9613d017b5e 103 }
reedas 0:e9613d017b5e 104
reedas 0:e9613d017b5e 105
reedas 0:e9613d017b5e 106 /*******************************************************************************
reedas 0:e9613d017b5e 107 * Function Name: DataRead
reedas 0:e9613d017b5e 108 ****************************************************************************//**
reedas 0:e9613d017b5e 109 *
reedas 0:e9613d017b5e 110 * \brief
reedas 0:e9613d017b5e 111 * Reads one byte of data from the software i8080 interface.
reedas 0:e9613d017b5e 112 *
reedas 0:e9613d017b5e 113 * \details
reedas 0:e9613d017b5e 114 * This function:
reedas 0:e9613d017b5e 115 * - Changes data bus GPIO pins drive mode to digital Hi-Z with enabled input
reedas 0:e9613d017b5e 116 * buffer
reedas 0:e9613d017b5e 117 * - Sends low pulse to LCD_NRD line to read data
reedas 0:e9613d017b5e 118 * - Reads data from the data bus
reedas 0:e9613d017b5e 119 * - Sends low pulse to the LCD_NWR line to write data
reedas 0:e9613d017b5e 120 * - Changes data bus GPIO pins drive mode back to to Strong Drive mode
reedas 0:e9613d017b5e 121 *
reedas 0:e9613d017b5e 122 * \todo
reedas 0:e9613d017b5e 123 * All this should be replaced with a udb register to save all the shifting
reedas 0:e9613d017b5e 124 * and individual bit reading.
reedas 0:e9613d017b5e 125 *
reedas 0:e9613d017b5e 126 *******************************************************************************/
reedas 0:e9613d017b5e 127 U8 DataRead(void)
reedas 0:e9613d017b5e 128 {
reedas 0:e9613d017b5e 129 U8 data = 0u;
reedas 0:e9613d017b5e 130
reedas 0:e9613d017b5e 131 /* enable input */
reedas 0:e9613d017b5e 132 LCD_REG0.input();
reedas 0:e9613d017b5e 133 LCD_REG1.input();
reedas 0:e9613d017b5e 134 LCD_REG2.input();
reedas 0:e9613d017b5e 135 LCD_REG3.input();
reedas 0:e9613d017b5e 136 LCD_REG4.input();
reedas 0:e9613d017b5e 137 LCD_REG5.input();
reedas 0:e9613d017b5e 138 LCD_REG6.input();
reedas 0:e9613d017b5e 139 LCD_REG7.input();
reedas 0:e9613d017b5e 140
reedas 0:e9613d017b5e 141 LCD_NRD = 0u; // Pulse read line low then read the data port
reedas 0:e9613d017b5e 142
reedas 0:e9613d017b5e 143 data = (U8)LCD_REG0.read();
reedas 0:e9613d017b5e 144 data |= (U8)LCD_REG1.read()<<1;
reedas 0:e9613d017b5e 145 data |= (U8)LCD_REG2.read()<<2;
reedas 0:e9613d017b5e 146 data |= (U8)LCD_REG3.read()<<3;
reedas 0:e9613d017b5e 147 data |= (U8)LCD_REG4.read()<<4;
reedas 0:e9613d017b5e 148 data |= (U8)LCD_REG5.read()<<5;
reedas 0:e9613d017b5e 149 data |= (U8)LCD_REG6.read()<<6;
reedas 0:e9613d017b5e 150 data |= (U8)LCD_REG7.read()<<7;
reedas 0:e9613d017b5e 151
reedas 0:e9613d017b5e 152 LCD_NRD = 1u; // Raise the read line and then go back to output port
reedas 0:e9613d017b5e 153
reedas 0:e9613d017b5e 154 LCD_REG0.output();
reedas 0:e9613d017b5e 155 LCD_REG1.output();
reedas 0:e9613d017b5e 156 LCD_REG2.output();
reedas 0:e9613d017b5e 157 LCD_REG3.output();
reedas 0:e9613d017b5e 158 LCD_REG4.output();
reedas 0:e9613d017b5e 159 LCD_REG5.output();
reedas 0:e9613d017b5e 160 LCD_REG6.output();
reedas 0:e9613d017b5e 161 LCD_REG7.output();
reedas 0:e9613d017b5e 162
reedas 0:e9613d017b5e 163 return data;
reedas 0:e9613d017b5e 164 }
reedas 0:e9613d017b5e 165
reedas 0:e9613d017b5e 166
reedas 0:e9613d017b5e 167 /*******************************************************************************
reedas 0:e9613d017b5e 168 * Function Name: DisplayIntf_Init
reedas 0:e9613d017b5e 169 ****************************************************************************//**
reedas 0:e9613d017b5e 170 *
reedas 0:e9613d017b5e 171 * \brief
reedas 0:e9613d017b5e 172 * Initializes software i8080 interface.
reedas 0:e9613d017b5e 173 *
reedas 0:e9613d017b5e 174 * \details
reedas 0:e9613d017b5e 175 * This function:
reedas 0:e9613d017b5e 176 * - Initializes interface GPIO pins
reedas 0:e9613d017b5e 177 *
reedas 0:e9613d017b5e 178 *******************************************************************************/
reedas 0:e9613d017b5e 179 void DisplayIntf_Init(void)
reedas 0:e9613d017b5e 180 {
reedas 0:e9613d017b5e 181 /* All pins are initialized by the Device Configurator. */
reedas 0:e9613d017b5e 182 LCD_RESET = 1u;
reedas 0:e9613d017b5e 183 LCD_NRD = 1u;
reedas 0:e9613d017b5e 184 LCD_NWR = 1u;
reedas 0:e9613d017b5e 185 LCD_DC = 0u;
reedas 0:e9613d017b5e 186 LCD_REG0.output();
reedas 0:e9613d017b5e 187 LCD_REG1.output();
reedas 0:e9613d017b5e 188 LCD_REG2.output();
reedas 0:e9613d017b5e 189 LCD_REG3.output();
reedas 0:e9613d017b5e 190 LCD_REG4.output();
reedas 0:e9613d017b5e 191 LCD_REG5.output();
reedas 0:e9613d017b5e 192 LCD_REG6.output();
reedas 0:e9613d017b5e 193 LCD_REG7.output();
reedas 0:e9613d017b5e 194 wait_ms(20);
reedas 0:e9613d017b5e 195 LCD_RESET = 0u;
reedas 0:e9613d017b5e 196 wait_ms(100);
reedas 0:e9613d017b5e 197
reedas 0:e9613d017b5e 198 LCD_RESET = 1u;
reedas 0:e9613d017b5e 199 wait_ms(100);
reedas 0:e9613d017b5e 200
reedas 0:e9613d017b5e 201 DisplayIntf_Write8_A0(0x28);
reedas 0:e9613d017b5e 202 DisplayIntf_Write8_A0(0x11); /* Exit Sleep mode */
reedas 0:e9613d017b5e 203 wait_ms(100);
reedas 0:e9613d017b5e 204 DisplayIntf_Write8_A0(0x36);
reedas 0:e9613d017b5e 205 DisplayIntf_Write8_A1(0xA0); /* MADCTL: memory data access control */
reedas 0:e9613d017b5e 206 DisplayIntf_Write8_A0(0x3A);
reedas 0:e9613d017b5e 207 DisplayIntf_Write8_A1(0x65); /* COLMOD: Interface Pixel format */
reedas 0:e9613d017b5e 208 DisplayIntf_Write8_A0(0xB2);
reedas 0:e9613d017b5e 209 DisplayIntf_Write8_A1(0x0C);
reedas 0:e9613d017b5e 210 DisplayIntf_Write8_A1(0x0C);
reedas 0:e9613d017b5e 211 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 212 DisplayIntf_Write8_A1(0x33);
reedas 0:e9613d017b5e 213 DisplayIntf_Write8_A1(0x33); /* PORCTRK: Porch setting */
reedas 0:e9613d017b5e 214 DisplayIntf_Write8_A0(0xB7);
reedas 0:e9613d017b5e 215 DisplayIntf_Write8_A1(0x35); /* GCTRL: Gate Control */
reedas 0:e9613d017b5e 216 DisplayIntf_Write8_A0(0xBB);
reedas 0:e9613d017b5e 217 DisplayIntf_Write8_A1(0x2B); /* VCOMS: VCOM setting */
reedas 0:e9613d017b5e 218 DisplayIntf_Write8_A0(0xC0);
reedas 0:e9613d017b5e 219 DisplayIntf_Write8_A1(0x2C); /* LCMCTRL: LCM Control */
reedas 0:e9613d017b5e 220 DisplayIntf_Write8_A0(0xC2);
reedas 0:e9613d017b5e 221 DisplayIntf_Write8_A1(0x01);
reedas 0:e9613d017b5e 222 DisplayIntf_Write8_A1(0xFF); /* VDVVRHEN: VDV and VRH Command Enable */
reedas 0:e9613d017b5e 223 DisplayIntf_Write8_A0(0xC3);
reedas 0:e9613d017b5e 224 DisplayIntf_Write8_A1(0x11); /* VRHS: VRH Set */
reedas 0:e9613d017b5e 225 DisplayIntf_Write8_A0(0xC4);
reedas 0:e9613d017b5e 226 DisplayIntf_Write8_A1(0x20); /* VDVS: VDV Set */
reedas 0:e9613d017b5e 227 DisplayIntf_Write8_A0(0xC6);
reedas 0:e9613d017b5e 228 DisplayIntf_Write8_A1(0x0F); /* FRCTRL2: Frame Rate control in normal mode */
reedas 0:e9613d017b5e 229 DisplayIntf_Write8_A0(0xD0);
reedas 0:e9613d017b5e 230 DisplayIntf_Write8_A1(0xA4);
reedas 0:e9613d017b5e 231 DisplayIntf_Write8_A1(0xA1); /* PWCTRL1: Power Control 1 */
reedas 0:e9613d017b5e 232 DisplayIntf_Write8_A0(0xE0);
reedas 0:e9613d017b5e 233 DisplayIntf_Write8_A1(0xD0);
reedas 0:e9613d017b5e 234 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 235 DisplayIntf_Write8_A1(0x05);
reedas 0:e9613d017b5e 236 DisplayIntf_Write8_A1(0x0E);
reedas 0:e9613d017b5e 237 DisplayIntf_Write8_A1(0x15);
reedas 0:e9613d017b5e 238 DisplayIntf_Write8_A1(0x0D);
reedas 0:e9613d017b5e 239 DisplayIntf_Write8_A1(0x37);
reedas 0:e9613d017b5e 240 DisplayIntf_Write8_A1(0x43);
reedas 0:e9613d017b5e 241 DisplayIntf_Write8_A1(0x47);
reedas 0:e9613d017b5e 242 DisplayIntf_Write8_A1(0x09);
reedas 0:e9613d017b5e 243 DisplayIntf_Write8_A1(0x15);
reedas 0:e9613d017b5e 244 DisplayIntf_Write8_A1(0x12);
reedas 0:e9613d017b5e 245 DisplayIntf_Write8_A1(0x16);
reedas 0:e9613d017b5e 246 DisplayIntf_Write8_A1(0x19); /* PVGAMCTRL: Positive Voltage Gamma control */
reedas 0:e9613d017b5e 247 DisplayIntf_Write8_A0(0xE1);
reedas 0:e9613d017b5e 248 DisplayIntf_Write8_A1(0xD0);
reedas 0:e9613d017b5e 249 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 250 DisplayIntf_Write8_A1(0x05);
reedas 0:e9613d017b5e 251 DisplayIntf_Write8_A1(0x0D);
reedas 0:e9613d017b5e 252 DisplayIntf_Write8_A1(0x0C);
reedas 0:e9613d017b5e 253 DisplayIntf_Write8_A1(0x06);
reedas 0:e9613d017b5e 254 DisplayIntf_Write8_A1(0x2D);
reedas 0:e9613d017b5e 255 DisplayIntf_Write8_A1(0x44);
reedas 0:e9613d017b5e 256 DisplayIntf_Write8_A1(0x40);
reedas 0:e9613d017b5e 257 DisplayIntf_Write8_A1(0x0E);
reedas 0:e9613d017b5e 258 DisplayIntf_Write8_A1(0x1C);
reedas 0:e9613d017b5e 259 DisplayIntf_Write8_A1(0x18);
reedas 0:e9613d017b5e 260 DisplayIntf_Write8_A1(0x16);
reedas 0:e9613d017b5e 261 DisplayIntf_Write8_A1(0x19); /* NVGAMCTRL: Negative Voltage Gamma control */
reedas 0:e9613d017b5e 262 DisplayIntf_Write8_A0(0x2B);
reedas 0:e9613d017b5e 263 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 264 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 265 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 266 DisplayIntf_Write8_A1(0xEF); /* Y address set */
reedas 0:e9613d017b5e 267 DisplayIntf_Write8_A0(0x2A);
reedas 0:e9613d017b5e 268 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 269 DisplayIntf_Write8_A1(0x00);
reedas 0:e9613d017b5e 270 DisplayIntf_Write8_A1(0x01);
reedas 0:e9613d017b5e 271 DisplayIntf_Write8_A1(0x3F); /* X address set */
reedas 0:e9613d017b5e 272 wait_ms(10);
reedas 0:e9613d017b5e 273 DisplayIntf_Write8_A0(0x29);
reedas 0:e9613d017b5e 274
reedas 0:e9613d017b5e 275
reedas 0:e9613d017b5e 276 }
reedas 0:e9613d017b5e 277
reedas 0:e9613d017b5e 278
reedas 0:e9613d017b5e 279 /*******************************************************************************
reedas 0:e9613d017b5e 280 * Function Name: DisplayIntf_Write8_A0
reedas 0:e9613d017b5e 281 ****************************************************************************//**
reedas 0:e9613d017b5e 282 *
reedas 0:e9613d017b5e 283 * \brief
reedas 0:e9613d017b5e 284 * Writes one byte of data to the software i8080 interface with the LCD_DC pin
reedas 0:e9613d017b5e 285 * set to 0
reedas 0:e9613d017b5e 286 *
reedas 0:e9613d017b5e 287 * \details
reedas 0:e9613d017b5e 288 * This function:
reedas 0:e9613d017b5e 289 * - Sets LCD_DC pin to 0
reedas 0:e9613d017b5e 290 * - Writes one data byte
reedas 0:e9613d017b5e 291 *
reedas 0:e9613d017b5e 292 *******************************************************************************/
reedas 0:e9613d017b5e 293 void DisplayIntf_Write8_A0(U8 data)
reedas 0:e9613d017b5e 294 {
reedas 0:e9613d017b5e 295 LCD_DC = 0u;
reedas 0:e9613d017b5e 296 DataWrite(data);
reedas 0:e9613d017b5e 297 }
reedas 0:e9613d017b5e 298
reedas 0:e9613d017b5e 299
reedas 0:e9613d017b5e 300 /*******************************************************************************
reedas 0:e9613d017b5e 301 * Function Name: DisplayIntf_Write8_A1
reedas 0:e9613d017b5e 302 ****************************************************************************//**
reedas 0:e9613d017b5e 303 *
reedas 0:e9613d017b5e 304 * \brief
reedas 0:e9613d017b5e 305 * Writes one byte of data to the software i8080 interface with the LCD_DC pin
reedas 0:e9613d017b5e 306 * set to 1
reedas 0:e9613d017b5e 307 *
reedas 0:e9613d017b5e 308 * \details
reedas 0:e9613d017b5e 309 * This function:
reedas 0:e9613d017b5e 310 * - Sets LCD_DC pin to 1
reedas 0:e9613d017b5e 311 * - Writes one data byte
reedas 0:e9613d017b5e 312 *
reedas 0:e9613d017b5e 313 *******************************************************************************/
reedas 0:e9613d017b5e 314 void DisplayIntf_Write8_A1(U8 data)
reedas 0:e9613d017b5e 315 {
reedas 0:e9613d017b5e 316 LCD_DC = 1u;
reedas 0:e9613d017b5e 317 DataWrite(data);
reedas 0:e9613d017b5e 318 }
reedas 0:e9613d017b5e 319
reedas 0:e9613d017b5e 320
reedas 0:e9613d017b5e 321 /*******************************************************************************
reedas 0:e9613d017b5e 322 * Function Name: DisplayIntf_WriteM8_A1
reedas 0:e9613d017b5e 323 ****************************************************************************//**
reedas 0:e9613d017b5e 324 *
reedas 0:e9613d017b5e 325 * \brief
reedas 0:e9613d017b5e 326 * Writes multiple bytes of data to the software i8080 interface with the LCD_DC
reedas 0:e9613d017b5e 327 * pin set to 1
reedas 0:e9613d017b5e 328 *
reedas 0:e9613d017b5e 329 * \details
reedas 0:e9613d017b5e 330 * This function:
reedas 0:e9613d017b5e 331 * - Sets LCD_DC pin to 1
reedas 0:e9613d017b5e 332 * - Writes data bytes
reedas 0:e9613d017b5e 333 *
reedas 0:e9613d017b5e 334 *******************************************************************************/
reedas 0:e9613d017b5e 335 void DisplayIntf_WriteM8_A1(U8 data[], int num)
reedas 0:e9613d017b5e 336 {
reedas 0:e9613d017b5e 337 int i = 0;
reedas 0:e9613d017b5e 338
reedas 0:e9613d017b5e 339 LCD_DC = 1u;
reedas 0:e9613d017b5e 340
reedas 0:e9613d017b5e 341 for(i = 0; i < num; i++)
reedas 0:e9613d017b5e 342 {
reedas 0:e9613d017b5e 343 DataWrite(data[i]);
reedas 0:e9613d017b5e 344 }
reedas 0:e9613d017b5e 345 }
reedas 0:e9613d017b5e 346
reedas 0:e9613d017b5e 347
reedas 0:e9613d017b5e 348 /*******************************************************************************
reedas 0:e9613d017b5e 349 * Function Name: DisplayIntf_Read8_A1
reedas 0:e9613d017b5e 350 ****************************************************************************//**
reedas 0:e9613d017b5e 351 *
reedas 0:e9613d017b5e 352 * \brief
reedas 0:e9613d017b5e 353 * Reads one byte of data from the software i8080 interface with the LCD_DC pin
reedas 0:e9613d017b5e 354 * set to 1
reedas 0:e9613d017b5e 355 *
reedas 0:e9613d017b5e 356 * \details
reedas 0:e9613d017b5e 357 * This function:
reedas 0:e9613d017b5e 358 * - Sets LCD_DC pin to 1
reedas 0:e9613d017b5e 359 * - Reads one data byte
reedas 0:e9613d017b5e 360 *
reedas 0:e9613d017b5e 361 *******************************************************************************/
reedas 0:e9613d017b5e 362 U8 DisplayIntf_Read8_A1(void)
reedas 0:e9613d017b5e 363 {
reedas 0:e9613d017b5e 364 LCD_DC = 1u;
reedas 0:e9613d017b5e 365 return DataRead();
reedas 0:e9613d017b5e 366 }
reedas 0:e9613d017b5e 367
reedas 0:e9613d017b5e 368
reedas 0:e9613d017b5e 369 /*******************************************************************************
reedas 0:e9613d017b5e 370 * Function Name: DisplayIntf_ReadM8_A1
reedas 0:e9613d017b5e 371 ****************************************************************************//**
reedas 0:e9613d017b5e 372 *
reedas 0:e9613d017b5e 373 * \brief
reedas 0:e9613d017b5e 374 * Reads multiple bytes of data from the software i8080 interface with the LCD_DC
reedas 0:e9613d017b5e 375 * pin set to 1
reedas 0:e9613d017b5e 376 *
reedas 0:e9613d017b5e 377 * \details
reedas 0:e9613d017b5e 378 * This function:
reedas 0:e9613d017b5e 379 * - Sets LCD_DC pin to 1
reedas 0:e9613d017b5e 380 * - Reads data bytes
reedas 0:e9613d017b5e 381 *
reedas 0:e9613d017b5e 382 *******************************************************************************/
reedas 0:e9613d017b5e 383 void DisplayIntf_ReadM8_A1(U8 data[], int num)
reedas 0:e9613d017b5e 384 {
reedas 0:e9613d017b5e 385 int i = 0;
reedas 0:e9613d017b5e 386
reedas 0:e9613d017b5e 387 LCD_DC = 1u;
reedas 0:e9613d017b5e 388
reedas 0:e9613d017b5e 389 for(i = 0; i < num; i++)
reedas 0:e9613d017b5e 390 {
reedas 0:e9613d017b5e 391 data[i] = DataRead();
reedas 0:e9613d017b5e 392 }
reedas 0:e9613d017b5e 393 }
reedas 0:e9613d017b5e 394
reedas 0:e9613d017b5e 395
reedas 0:e9613d017b5e 396 /* [] END OF FILE */
reedas 0:e9613d017b5e 397
reedas 0:e9613d017b5e 398