Capsense buttons and Slider, output to Serial over i2c and tft display

Committer:
reedas
Date:
Mon Dec 02 22:55:59 2019 +0000
Revision:
1:cf461b359823
Parent:
0:4ad2c16b6e43
Example of Capacitive Sensitive Buttons and slider from MBED example

Who changed what in which revision?

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