Brian Eason / Mbed 2 deprecated BrickBreak

Dependencies:   mbed

Committer:
brianeason92
Date:
Tue Nov 01 18:29:26 2016 +0000
Revision:
0:64079f49da67
Full functioning brick break game for lab 4

Who changed what in which revision?

UserRevisionLine numberNew contents of line
brianeason92 0:64079f49da67 1 //
brianeason92 0:64079f49da67 2 // uLCD_4DGL is a class to drive 4D Systems LCD screens
brianeason92 0:64079f49da67 3 //
brianeason92 0:64079f49da67 4 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
brianeason92 0:64079f49da67 5 // Modifed for Goldelox processor <2013> Jim Hamblen
brianeason92 0:64079f49da67 6 //
brianeason92 0:64079f49da67 7 // uLCD_4DGL is free software: you can redistribute it and/or modify
brianeason92 0:64079f49da67 8 // it under the terms of the GNU General Public License as published by
brianeason92 0:64079f49da67 9 // the Free Software Foundation, either version 3 of the License, or
brianeason92 0:64079f49da67 10 // (at your option) any later version.
brianeason92 0:64079f49da67 11 //
brianeason92 0:64079f49da67 12 // uLCD_4DGL is distributed in the hope that it will be useful,
brianeason92 0:64079f49da67 13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
brianeason92 0:64079f49da67 14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
brianeason92 0:64079f49da67 15 // GNU General Public License for more details.
brianeason92 0:64079f49da67 16 //
brianeason92 0:64079f49da67 17 // You should have received a copy of the GNU General Public License
brianeason92 0:64079f49da67 18 // along with uLCD_4DGL. If not, see <http://www.gnu.org/licenses/>.
brianeason92 0:64079f49da67 19
brianeason92 0:64079f49da67 20 #include "mbed.h"
brianeason92 0:64079f49da67 21 #include "uLCD_4DGL.h"
brianeason92 0:64079f49da67 22
brianeason92 0:64079f49da67 23
brianeason92 0:64079f49da67 24 //Media Commands
brianeason92 0:64079f49da67 25
brianeason92 0:64079f49da67 26 //******************************************************************************************************
brianeason92 0:64079f49da67 27 int uLCD_4DGL :: media_init()
brianeason92 0:64079f49da67 28 {
brianeason92 0:64079f49da67 29 int resp = 0;
brianeason92 0:64079f49da67 30 char command[1] = "";
brianeason92 0:64079f49da67 31 command[0] = MINIT;
brianeason92 0:64079f49da67 32 writeCOMMAND(command, 1);
brianeason92 0:64079f49da67 33 while (!_cmd.readable()) wait_ms(TEMPO); // wait for screen answer
brianeason92 0:64079f49da67 34 if (_cmd.readable()) {
brianeason92 0:64079f49da67 35 resp = _cmd.getc(); // read response
brianeason92 0:64079f49da67 36 resp = resp << 8 + _cmd.getc();
brianeason92 0:64079f49da67 37 }
brianeason92 0:64079f49da67 38 return resp;
brianeason92 0:64079f49da67 39 }
brianeason92 0:64079f49da67 40
brianeason92 0:64079f49da67 41 //******************************************************************************************************
brianeason92 0:64079f49da67 42 void uLCD_4DGL :: set_byte_address(int hi, int lo)
brianeason92 0:64079f49da67 43 {
brianeason92 0:64079f49da67 44 char command[5]= "";
brianeason92 0:64079f49da67 45 command[0] = SBADDRESS;
brianeason92 0:64079f49da67 46
brianeason92 0:64079f49da67 47 command[1] = (hi >> 8) & 0xFF;
brianeason92 0:64079f49da67 48 command[2] = hi & 0xFF;
brianeason92 0:64079f49da67 49
brianeason92 0:64079f49da67 50 command[3] = (lo >> 8) & 0xFF;
brianeason92 0:64079f49da67 51 command[4] = lo & 0xFF;
brianeason92 0:64079f49da67 52 writeCOMMAND(command, 5);
brianeason92 0:64079f49da67 53 }
brianeason92 0:64079f49da67 54
brianeason92 0:64079f49da67 55 //******************************************************************************************************
brianeason92 0:64079f49da67 56 void uLCD_4DGL :: set_sector_address(int hi, int lo)
brianeason92 0:64079f49da67 57 {
brianeason92 0:64079f49da67 58
brianeason92 0:64079f49da67 59 char command[5]= "";
brianeason92 0:64079f49da67 60 command[0] = SSADDRESS;
brianeason92 0:64079f49da67 61
brianeason92 0:64079f49da67 62 command[1] = (hi >> 8) & 0xFF;
brianeason92 0:64079f49da67 63 command[2] = hi & 0xFF;
brianeason92 0:64079f49da67 64
brianeason92 0:64079f49da67 65 command[3] = (lo >> 8) & 0xFF;
brianeason92 0:64079f49da67 66 command[4] = lo & 0xFF;
brianeason92 0:64079f49da67 67 writeCOMMAND(command, 5);
brianeason92 0:64079f49da67 68 }
brianeason92 0:64079f49da67 69
brianeason92 0:64079f49da67 70 //******************************************************************************************************
brianeason92 0:64079f49da67 71 char uLCD_4DGL :: read_byte()
brianeason92 0:64079f49da67 72 {
brianeason92 0:64079f49da67 73 char resp = 0;
brianeason92 0:64079f49da67 74 char command[1] = "";
brianeason92 0:64079f49da67 75 command[0] = READBYTE;
brianeason92 0:64079f49da67 76 writeCOMMAND(command, 1);
brianeason92 0:64079f49da67 77 while (!_cmd.readable()) wait_ms(TEMPO); // wait for screen answer
brianeason92 0:64079f49da67 78 if (_cmd.readable()) {
brianeason92 0:64079f49da67 79 resp = _cmd.getc(); // read response
brianeason92 0:64079f49da67 80 resp = _cmd.getc();
brianeason92 0:64079f49da67 81 }
brianeason92 0:64079f49da67 82 return resp;
brianeason92 0:64079f49da67 83 }
brianeason92 0:64079f49da67 84
brianeason92 0:64079f49da67 85 //******************************************************************************************************
brianeason92 0:64079f49da67 86 int uLCD_4DGL :: read_word()
brianeason92 0:64079f49da67 87 {
brianeason92 0:64079f49da67 88 int resp=0;
brianeason92 0:64079f49da67 89 char command[1] = "";
brianeason92 0:64079f49da67 90 command[0] = READWORD;
brianeason92 0:64079f49da67 91 writeCOMMAND(command, 1);
brianeason92 0:64079f49da67 92 while (!_cmd.readable()) wait_ms(TEMPO); // wait for screen answer
brianeason92 0:64079f49da67 93 if (_cmd.readable()) {
brianeason92 0:64079f49da67 94 resp = _cmd.getc(); // read response
brianeason92 0:64079f49da67 95 resp = resp << 8 + _cmd.getc();
brianeason92 0:64079f49da67 96 }
brianeason92 0:64079f49da67 97 return resp;
brianeason92 0:64079f49da67 98 }
brianeason92 0:64079f49da67 99
brianeason92 0:64079f49da67 100 //******************************************************************************************************
brianeason92 0:64079f49da67 101 void uLCD_4DGL :: write_byte(int value)
brianeason92 0:64079f49da67 102 {
brianeason92 0:64079f49da67 103 char command[3]= "";
brianeason92 0:64079f49da67 104
brianeason92 0:64079f49da67 105 command[0] = WRITEBYTE;
brianeason92 0:64079f49da67 106
brianeason92 0:64079f49da67 107 command[1] = (value >> 8) & 0xFF;
brianeason92 0:64079f49da67 108 command[2] = value & 0xFF;
brianeason92 0:64079f49da67 109 writeCOMMAND(command,3);
brianeason92 0:64079f49da67 110 }
brianeason92 0:64079f49da67 111
brianeason92 0:64079f49da67 112 //******************************************************************************************************
brianeason92 0:64079f49da67 113 void uLCD_4DGL :: write_word(int value)
brianeason92 0:64079f49da67 114 {
brianeason92 0:64079f49da67 115 char command[3]= "";
brianeason92 0:64079f49da67 116
brianeason92 0:64079f49da67 117 command[0] = WRITEWORD;
brianeason92 0:64079f49da67 118
brianeason92 0:64079f49da67 119 command[1] = (value >> 8) & 0xFF;
brianeason92 0:64079f49da67 120 command[2] = value & 0xFF;
brianeason92 0:64079f49da67 121 writeCOMMAND(command,3);
brianeason92 0:64079f49da67 122 }
brianeason92 0:64079f49da67 123
brianeason92 0:64079f49da67 124 //******************************************************************************************************
brianeason92 0:64079f49da67 125 void uLCD_4DGL :: flush_media()
brianeason92 0:64079f49da67 126 {
brianeason92 0:64079f49da67 127 char command[1] = "";
brianeason92 0:64079f49da67 128 command[0] = FLUSHMEDIA;
brianeason92 0:64079f49da67 129 writeCOMMAND(command, 1);
brianeason92 0:64079f49da67 130 }
brianeason92 0:64079f49da67 131
brianeason92 0:64079f49da67 132 //******************************************************************************************************
brianeason92 0:64079f49da67 133 void uLCD_4DGL :: display_image(int x, int y)
brianeason92 0:64079f49da67 134 {
brianeason92 0:64079f49da67 135 char command[6]= "";
brianeason92 0:64079f49da67 136 command[0] = DISPLAYIMAGE;
brianeason92 0:64079f49da67 137
brianeason92 0:64079f49da67 138 command[1] = (x >> 8) & 0xFF;
brianeason92 0:64079f49da67 139 command[2] = x & 0xFF;
brianeason92 0:64079f49da67 140
brianeason92 0:64079f49da67 141 command[3] = (y >> 8) & 0xFF;
brianeason92 0:64079f49da67 142 command[4] = y & 0xFF;
brianeason92 0:64079f49da67 143 writeCOMMAND(command, 5);
brianeason92 0:64079f49da67 144 }
brianeason92 0:64079f49da67 145
brianeason92 0:64079f49da67 146 //******************************************************************************************************
brianeason92 0:64079f49da67 147 void uLCD_4DGL :: display_video(int x, int y)
brianeason92 0:64079f49da67 148 {
brianeason92 0:64079f49da67 149 char command[5]= "";
brianeason92 0:64079f49da67 150 command[0] = DISPLAYVIDEO;
brianeason92 0:64079f49da67 151
brianeason92 0:64079f49da67 152 command[1] = (x >> 8) & 0xFF;
brianeason92 0:64079f49da67 153 command[2] = x & 0xFF;
brianeason92 0:64079f49da67 154
brianeason92 0:64079f49da67 155 command[3] = (y >> 8) & 0xFF;
brianeason92 0:64079f49da67 156 command[4] = y & 0xFF;
brianeason92 0:64079f49da67 157 writeCOMMAND(command, 5);
brianeason92 0:64079f49da67 158 }
brianeason92 0:64079f49da67 159
brianeason92 0:64079f49da67 160 //******************************************************************************************************
brianeason92 0:64079f49da67 161 void uLCD_4DGL :: display_frame(int x, int y, int w)
brianeason92 0:64079f49da67 162 {
brianeason92 0:64079f49da67 163 char command[7]= "";
brianeason92 0:64079f49da67 164
brianeason92 0:64079f49da67 165 command[0] = DISPLAYFRAME;
brianeason92 0:64079f49da67 166
brianeason92 0:64079f49da67 167 command[1] = (x >> 8) & 0xFF;
brianeason92 0:64079f49da67 168 command[2] = x & 0xFF;
brianeason92 0:64079f49da67 169
brianeason92 0:64079f49da67 170 command[3] = (y >> 8) & 0xFF;
brianeason92 0:64079f49da67 171 command[4] = y & 0xFF;
brianeason92 0:64079f49da67 172
brianeason92 0:64079f49da67 173 command[5] = (w >> 8) & 0xFF;
brianeason92 0:64079f49da67 174 command[6] = w & 0xFF;
brianeason92 0:64079f49da67 175 writeCOMMAND(command,7);
brianeason92 0:64079f49da67 176 }
brianeason92 0:64079f49da67 177