Finished Lab 4 Pt 1

Dependencies:   mbed Sounds PinDetect

Committer:
trmontgomery
Date:
Fri Apr 05 19:46:26 2019 +0000
Revision:
0:daf9e2f8e1a1
Finished Lab 4 pt 1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
trmontgomery 0:daf9e2f8e1a1 1 //
trmontgomery 0:daf9e2f8e1a1 2 // uLCD_4DGL is a class to drive 4D Systems TFT touch screens
trmontgomery 0:daf9e2f8e1a1 3 //
trmontgomery 0:daf9e2f8e1a1 4 // Fork of 4DGL library for 4D Systems LCD displays
trmontgomery 0:daf9e2f8e1a1 5 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
trmontgomery 0:daf9e2f8e1a1 6 // Modifed for Goldelox processor <2013> Jim Hamblen
trmontgomery 0:daf9e2f8e1a1 7 //
trmontgomery 0:daf9e2f8e1a1 8 // uLCD_4DGL is free software: you can redistribute it and/or modify
trmontgomery 0:daf9e2f8e1a1 9 // it under the terms of the GNU General Public License as published by
trmontgomery 0:daf9e2f8e1a1 10 // the Free Software Foundation, either version 3 of the License, or
trmontgomery 0:daf9e2f8e1a1 11 // (at your option) any later version.
trmontgomery 0:daf9e2f8e1a1 12 //
trmontgomery 0:daf9e2f8e1a1 13 // uLCD_4DGL is distributed in the hope that it will be useful,
trmontgomery 0:daf9e2f8e1a1 14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
trmontgomery 0:daf9e2f8e1a1 15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
trmontgomery 0:daf9e2f8e1a1 16 // GNU General Public License for more details.
trmontgomery 0:daf9e2f8e1a1 17 //
trmontgomery 0:daf9e2f8e1a1 18 // You should have received a copy of the GNU General Public License
trmontgomery 0:daf9e2f8e1a1 19 // along with uLCD_4DGL. If not, see <http://www.gnu.org/licenses/>.
trmontgomery 0:daf9e2f8e1a1 20
trmontgomery 0:daf9e2f8e1a1 21 // @author Stephane Rochon
trmontgomery 0:daf9e2f8e1a1 22
trmontgomery 0:daf9e2f8e1a1 23 #include "mbed.h"
trmontgomery 0:daf9e2f8e1a1 24 #ifndef _uLCD
trmontgomery 0:daf9e2f8e1a1 25 #define _uLCD 0
trmontgomery 0:daf9e2f8e1a1 26 // Debug Verbose off - SGE commands echoed to USB serial for debugmode=1
trmontgomery 0:daf9e2f8e1a1 27 #ifndef DEBUGMODE
trmontgomery 0:daf9e2f8e1a1 28 #define DEBUGMODE 0
trmontgomery 0:daf9e2f8e1a1 29 #endif
trmontgomery 0:daf9e2f8e1a1 30
trmontgomery 0:daf9e2f8e1a1 31 // Common WAIT value in milliseconds between commands
trmontgomery 0:daf9e2f8e1a1 32 #define TEMPO 0
trmontgomery 0:daf9e2f8e1a1 33
trmontgomery 0:daf9e2f8e1a1 34 // 4DGL SGE Function values for Goldelox Processor
trmontgomery 0:daf9e2f8e1a1 35 #define CLS '\xD7'
trmontgomery 0:daf9e2f8e1a1 36 #define BAUDRATE '\x0B' //null prefix
trmontgomery 0:daf9e2f8e1a1 37 #define VERSION '\x08' //null prefix
trmontgomery 0:daf9e2f8e1a1 38 #define BCKGDCOLOR '\x6E'
trmontgomery 0:daf9e2f8e1a1 39 #define TXTBCKGDCOLOR '\x7E'
trmontgomery 0:daf9e2f8e1a1 40 #define DISPCONTROL '\x68'
trmontgomery 0:daf9e2f8e1a1 41 #define SETVOLUME '\x76'
trmontgomery 0:daf9e2f8e1a1 42 #define CIRCLE '\xCD'
trmontgomery 0:daf9e2f8e1a1 43 #define FCIRCLE '\xCC'
trmontgomery 0:daf9e2f8e1a1 44 #define TRIANGLE '\xC9'
trmontgomery 0:daf9e2f8e1a1 45 #define LINE '\xD2'
trmontgomery 0:daf9e2f8e1a1 46 #define FRECTANGLE '\xCE'
trmontgomery 0:daf9e2f8e1a1 47 #define RECTANGLE '\xCF'
trmontgomery 0:daf9e2f8e1a1 48 #define ELLIPSE '\x65' //na
trmontgomery 0:daf9e2f8e1a1 49 #define PIXEL '\xCB'
trmontgomery 0:daf9e2f8e1a1 50 #define READPIXEL '\xCA'
trmontgomery 0:daf9e2f8e1a1 51 #define SCREENCOPY '\x63' //na?
trmontgomery 0:daf9e2f8e1a1 52 #define PENSIZE '\xD8'
trmontgomery 0:daf9e2f8e1a1 53 #define SETFONT '\x7D'
trmontgomery 0:daf9e2f8e1a1 54 #define TEXTMODE '\x77'
trmontgomery 0:daf9e2f8e1a1 55 #define TEXTBOLD '\x76'
trmontgomery 0:daf9e2f8e1a1 56 #define TEXTITALIC '\x75'
trmontgomery 0:daf9e2f8e1a1 57 #define TEXTINVERSE '\x74'
trmontgomery 0:daf9e2f8e1a1 58 #define TEXTUNDERLINE '\x73'
trmontgomery 0:daf9e2f8e1a1 59 #define TEXTWIDTH '\x7C'
trmontgomery 0:daf9e2f8e1a1 60 #define TEXTHEIGHT '\x7B'
trmontgomery 0:daf9e2f8e1a1 61 #define TEXTCHAR '\xFE'
trmontgomery 0:daf9e2f8e1a1 62 #define TEXTSTRING '\x06' //null prefix
trmontgomery 0:daf9e2f8e1a1 63 #define MOVECURSOR '\xE4'
trmontgomery 0:daf9e2f8e1a1 64 #define BLITCOM '\x0A'
trmontgomery 0:daf9e2f8e1a1 65 #define PUTCHAR '\xFE'
trmontgomery 0:daf9e2f8e1a1 66 #define DISPPOWER '\x66'
trmontgomery 0:daf9e2f8e1a1 67 //media commands for uSD card
trmontgomery 0:daf9e2f8e1a1 68 #define MINIT '\xB1'
trmontgomery 0:daf9e2f8e1a1 69 #define SBADDRESS '\xB9'
trmontgomery 0:daf9e2f8e1a1 70 #define SSADDRESS '\xB8'
trmontgomery 0:daf9e2f8e1a1 71 #define READBYTE '\xB7'
trmontgomery 0:daf9e2f8e1a1 72 #define READWORD '\xB6'
trmontgomery 0:daf9e2f8e1a1 73 #define WRITEBYTE '\xB5'
trmontgomery 0:daf9e2f8e1a1 74 #define WRITEWORD '\xB4'
trmontgomery 0:daf9e2f8e1a1 75 #define FLUSHMEDIA '\xB2'
trmontgomery 0:daf9e2f8e1a1 76 #define DISPLAYIMAGE '\xB3'
trmontgomery 0:daf9e2f8e1a1 77 #define DISPLAYVIDEO '\xBB'
trmontgomery 0:daf9e2f8e1a1 78 #define DISPLAYFRAME '\xBA'
trmontgomery 0:daf9e2f8e1a1 79
trmontgomery 0:daf9e2f8e1a1 80
trmontgomery 0:daf9e2f8e1a1 81
trmontgomery 0:daf9e2f8e1a1 82 // Screen answers
trmontgomery 0:daf9e2f8e1a1 83 #define ACK '\x06'
trmontgomery 0:daf9e2f8e1a1 84 #define NAK '\x15'
trmontgomery 0:daf9e2f8e1a1 85
trmontgomery 0:daf9e2f8e1a1 86
trmontgomery 0:daf9e2f8e1a1 87
trmontgomery 0:daf9e2f8e1a1 88 // Screen states
trmontgomery 0:daf9e2f8e1a1 89 #define OFF '\x00'
trmontgomery 0:daf9e2f8e1a1 90 #define ON '\x01'
trmontgomery 0:daf9e2f8e1a1 91
trmontgomery 0:daf9e2f8e1a1 92 // Graphics modes
trmontgomery 0:daf9e2f8e1a1 93 #define SOLID '\x00'
trmontgomery 0:daf9e2f8e1a1 94 #define WIREFRAME '\x01'
trmontgomery 0:daf9e2f8e1a1 95
trmontgomery 0:daf9e2f8e1a1 96 // Text modes
trmontgomery 0:daf9e2f8e1a1 97 #define TRANSPARENT '\x00'
trmontgomery 0:daf9e2f8e1a1 98 #define OPAQUE '\x01'
trmontgomery 0:daf9e2f8e1a1 99
trmontgomery 0:daf9e2f8e1a1 100 // Fonts Sizes
trmontgomery 0:daf9e2f8e1a1 101 #define FONT_7X8 '\x00' //only builtin font
trmontgomery 0:daf9e2f8e1a1 102 #define FONT_5X7 '\x04'
trmontgomery 0:daf9e2f8e1a1 103 #define FONT_8X8 '\x01'
trmontgomery 0:daf9e2f8e1a1 104 #define FONT_8X12 '\x02'
trmontgomery 0:daf9e2f8e1a1 105 #define FONT_12X16 '\x03'
trmontgomery 0:daf9e2f8e1a1 106 #define MEDIAFONT '\x07'
trmontgomery 0:daf9e2f8e1a1 107
trmontgomery 0:daf9e2f8e1a1 108
trmontgomery 0:daf9e2f8e1a1 109 // Data speed
trmontgomery 0:daf9e2f8e1a1 110 #define BAUD_110 27271
trmontgomery 0:daf9e2f8e1a1 111 #define BAUD_300 9999
trmontgomery 0:daf9e2f8e1a1 112 #define BAUD_600 4999
trmontgomery 0:daf9e2f8e1a1 113 #define BAUD_1200 2499
trmontgomery 0:daf9e2f8e1a1 114 #define BAUD_2400 1249
trmontgomery 0:daf9e2f8e1a1 115 #define BAUD_4800 624
trmontgomery 0:daf9e2f8e1a1 116 #define BAUD_9600 312
trmontgomery 0:daf9e2f8e1a1 117 #define BAUD_14400 207
trmontgomery 0:daf9e2f8e1a1 118 #define BAUD_19200 155
trmontgomery 0:daf9e2f8e1a1 119 #define BAUD_31250 95
trmontgomery 0:daf9e2f8e1a1 120 #define BAUD_38400 77
trmontgomery 0:daf9e2f8e1a1 121 #define BAUD_56000 53
trmontgomery 0:daf9e2f8e1a1 122 #define BAUD_57600 51
trmontgomery 0:daf9e2f8e1a1 123 #define BAUD_115200 25
trmontgomery 0:daf9e2f8e1a1 124 #define BAUD_128000 22
trmontgomery 0:daf9e2f8e1a1 125 #define BAUD_256000 11
trmontgomery 0:daf9e2f8e1a1 126 #define BAUD_300000 10
trmontgomery 0:daf9e2f8e1a1 127 #define BAUD_375000 8
trmontgomery 0:daf9e2f8e1a1 128 #define BAUD_500000 6
trmontgomery 0:daf9e2f8e1a1 129 #define BAUD_600000 4
trmontgomery 0:daf9e2f8e1a1 130 #define BAUD_750000 3
trmontgomery 0:daf9e2f8e1a1 131 #define BAUD_1000000 2
trmontgomery 0:daf9e2f8e1a1 132 #define BAUD_1500000 1
trmontgomery 0:daf9e2f8e1a1 133 #define BAUD_3000000 0
trmontgomery 0:daf9e2f8e1a1 134
trmontgomery 0:daf9e2f8e1a1 135 // Defined Colors
trmontgomery 0:daf9e2f8e1a1 136 #define WHITE 0xFFFFFF
trmontgomery 0:daf9e2f8e1a1 137 #define BLACK 0x000000
trmontgomery 0:daf9e2f8e1a1 138 #define RED 0xFF0000
trmontgomery 0:daf9e2f8e1a1 139 #define GREEN 0x00FF00
trmontgomery 0:daf9e2f8e1a1 140 #define BLUE 0x0000FF
trmontgomery 0:daf9e2f8e1a1 141 #define LGREY 0xBFBFBF
trmontgomery 0:daf9e2f8e1a1 142 #define DGREY 0x5F5F5F
trmontgomery 0:daf9e2f8e1a1 143
trmontgomery 0:daf9e2f8e1a1 144 // Mode data
trmontgomery 0:daf9e2f8e1a1 145 #define BACKLIGHT '\x00'
trmontgomery 0:daf9e2f8e1a1 146 #define DISPLAY '\x01'
trmontgomery 0:daf9e2f8e1a1 147 #define CONTRAST '\x02'
trmontgomery 0:daf9e2f8e1a1 148 #define POWER '\x03'
trmontgomery 0:daf9e2f8e1a1 149 #define ORIENTATION '\x04'
trmontgomery 0:daf9e2f8e1a1 150 #define TOUCH_CTRL '\x05'
trmontgomery 0:daf9e2f8e1a1 151 #define IMAGE_FORMAT '\x06'
trmontgomery 0:daf9e2f8e1a1 152 #define PROTECT_FAT '\x08'
trmontgomery 0:daf9e2f8e1a1 153
trmontgomery 0:daf9e2f8e1a1 154 // change this to your specific screen (newer versions) if needed
trmontgomery 0:daf9e2f8e1a1 155 // Startup orientation is PORTRAIT so SIZE_X must be lesser than SIZE_Y
trmontgomery 0:daf9e2f8e1a1 156 //uLCD144-G2 is a 128 by 128 pixel display
trmontgomery 0:daf9e2f8e1a1 157 #define SIZE_X 128
trmontgomery 0:daf9e2f8e1a1 158 #define SIZE_Y 128
trmontgomery 0:daf9e2f8e1a1 159
trmontgomery 0:daf9e2f8e1a1 160 #define IS_LANDSCAPE 0
trmontgomery 0:daf9e2f8e1a1 161 #define IS_PORTRAIT 1
trmontgomery 0:daf9e2f8e1a1 162
trmontgomery 0:daf9e2f8e1a1 163 // Screen orientation
trmontgomery 0:daf9e2f8e1a1 164 #define LANDSCAPE '\x00'
trmontgomery 0:daf9e2f8e1a1 165 #define LANDSCAPE_R '\x01'
trmontgomery 0:daf9e2f8e1a1 166 #define PORTRAIT '\x02'
trmontgomery 0:daf9e2f8e1a1 167 #define PORTRAIT_R '\x03'
trmontgomery 0:daf9e2f8e1a1 168
trmontgomery 0:daf9e2f8e1a1 169 // Parameters
trmontgomery 0:daf9e2f8e1a1 170 #define ENABLE '\x00'
trmontgomery 0:daf9e2f8e1a1 171 #define DISABLE '\x01'
trmontgomery 0:daf9e2f8e1a1 172 #define RESET '\x02'
trmontgomery 0:daf9e2f8e1a1 173
trmontgomery 0:daf9e2f8e1a1 174 #define NEW '\x00'
trmontgomery 0:daf9e2f8e1a1 175 #define OLD '\x01'
trmontgomery 0:daf9e2f8e1a1 176
trmontgomery 0:daf9e2f8e1a1 177 #define DOWN '\x00'
trmontgomery 0:daf9e2f8e1a1 178 #define UP '\x01'
trmontgomery 0:daf9e2f8e1a1 179
trmontgomery 0:daf9e2f8e1a1 180 #define PROTECT '\x00'
trmontgomery 0:daf9e2f8e1a1 181 #define UNPROTECT '\x02'
trmontgomery 0:daf9e2f8e1a1 182
trmontgomery 0:daf9e2f8e1a1 183 //**************************************************************************
trmontgomery 0:daf9e2f8e1a1 184 // \class uLCD_4DGL uLCD_4DGL.h
trmontgomery 0:daf9e2f8e1a1 185 // \brief This is the main class. It shoud be used like this : uLCD_4GDL myLCD(p9,p10,p11);
trmontgomery 0:daf9e2f8e1a1 186 /**
trmontgomery 0:daf9e2f8e1a1 187 Example:
trmontgomery 0:daf9e2f8e1a1 188 * @code
trmontgomery 0:daf9e2f8e1a1 189 * // Display a white circle on the screen
trmontgomery 0:daf9e2f8e1a1 190 * #include "mbed.h"
trmontgomery 0:daf9e2f8e1a1 191 * #include " uLCD_4DGL.h"
trmontgomery 0:daf9e2f8e1a1 192 *
trmontgomery 0:daf9e2f8e1a1 193 * uLCD_4GDL myLCD(p9,p10,p11);
trmontgomery 0:daf9e2f8e1a1 194 *
trmontgomery 0:daf9e2f8e1a1 195 * int main() {
trmontgomery 0:daf9e2f8e1a1 196 * myLCD.circle(120, 160, 80, WHITE);
trmontgomery 0:daf9e2f8e1a1 197 * }
trmontgomery 0:daf9e2f8e1a1 198 * @endcode
trmontgomery 0:daf9e2f8e1a1 199 */
trmontgomery 0:daf9e2f8e1a1 200
trmontgomery 0:daf9e2f8e1a1 201 class uLCD_4DGL : public Stream
trmontgomery 0:daf9e2f8e1a1 202 {
trmontgomery 0:daf9e2f8e1a1 203
trmontgomery 0:daf9e2f8e1a1 204 public :
trmontgomery 0:daf9e2f8e1a1 205
trmontgomery 0:daf9e2f8e1a1 206 uLCD_4DGL(PinName tx, PinName rx, PinName rst);
trmontgomery 0:daf9e2f8e1a1 207
trmontgomery 0:daf9e2f8e1a1 208 // General Commands *******************************************************************************
trmontgomery 0:daf9e2f8e1a1 209
trmontgomery 0:daf9e2f8e1a1 210 /** Clear the entire screen using the current background colour */
trmontgomery 0:daf9e2f8e1a1 211 void cls();
trmontgomery 0:daf9e2f8e1a1 212
trmontgomery 0:daf9e2f8e1a1 213 /** Reset screen */
trmontgomery 0:daf9e2f8e1a1 214 void reset();
trmontgomery 0:daf9e2f8e1a1 215
trmontgomery 0:daf9e2f8e1a1 216
trmontgomery 0:daf9e2f8e1a1 217 /** Set serial Baud rate (both sides : screen and mbed)
trmontgomery 0:daf9e2f8e1a1 218 * @param Speed Correct BAUD value (see uLCD_4DGL.h)
trmontgomery 0:daf9e2f8e1a1 219 */
trmontgomery 0:daf9e2f8e1a1 220 void baudrate(int speed);
trmontgomery 0:daf9e2f8e1a1 221
trmontgomery 0:daf9e2f8e1a1 222 /** Set background colour to the specified value
trmontgomery 0:daf9e2f8e1a1 223 * @param color in HEX RGB like 0xFF00FF
trmontgomery 0:daf9e2f8e1a1 224 */
trmontgomery 0:daf9e2f8e1a1 225 void background_color(int color);
trmontgomery 0:daf9e2f8e1a1 226
trmontgomery 0:daf9e2f8e1a1 227 /** Set screen display mode to specific values
trmontgomery 0:daf9e2f8e1a1 228 * @param mode See 4DGL documentation
trmontgomery 0:daf9e2f8e1a1 229 * @param value See 4DGL documentation
trmontgomery 0:daf9e2f8e1a1 230 */
trmontgomery 0:daf9e2f8e1a1 231 void textbackground_color(int color);
trmontgomery 0:daf9e2f8e1a1 232
trmontgomery 0:daf9e2f8e1a1 233 /** Set screen display mode to specific values
trmontgomery 0:daf9e2f8e1a1 234 * @param mode See 4DGL documentation
trmontgomery 0:daf9e2f8e1a1 235 * @param value See 4DGL documentation
trmontgomery 0:daf9e2f8e1a1 236 */
trmontgomery 0:daf9e2f8e1a1 237 void display_control(char mode);
trmontgomery 0:daf9e2f8e1a1 238 void display_power(char mode);
trmontgomery 0:daf9e2f8e1a1 239 /** Set internal speaker to specified value
trmontgomery 0:daf9e2f8e1a1 240 * @param value Correct range is 8 - 127
trmontgomery 0:daf9e2f8e1a1 241 */
trmontgomery 0:daf9e2f8e1a1 242 void set_volume(char value);
trmontgomery 0:daf9e2f8e1a1 243
trmontgomery 0:daf9e2f8e1a1 244 // Graphics Commands *******************************************************************************
trmontgomery 0:daf9e2f8e1a1 245
trmontgomery 0:daf9e2f8e1a1 246 /** Draw a circle centered at x,y with a radius and a colour. It uses Pen Size stored value to draw a solid or wireframe circle
trmontgomery 0:daf9e2f8e1a1 247 * @param x Horizontal position of the circle centre
trmontgomery 0:daf9e2f8e1a1 248 * @param y Vertical position of the circle centre
trmontgomery 0:daf9e2f8e1a1 249 * @param radius Radius of the circle
trmontgomery 0:daf9e2f8e1a1 250 * @param color Circle color in HEX RGB like 0xFF00FF
trmontgomery 0:daf9e2f8e1a1 251 */
trmontgomery 0:daf9e2f8e1a1 252 void circle(int x , int y , int radius, int color);
trmontgomery 0:daf9e2f8e1a1 253 void filled_circle(int x , int y , int radius, int color);
trmontgomery 0:daf9e2f8e1a1 254 void triangle(int, int, int, int, int, int, int);
trmontgomery 0:daf9e2f8e1a1 255 void line(int, int, int, int, int);
trmontgomery 0:daf9e2f8e1a1 256 void rectangle(int, int, int, int, int);
trmontgomery 0:daf9e2f8e1a1 257 void filled_rectangle(int, int, int, int, int);
trmontgomery 0:daf9e2f8e1a1 258 void pixel(int, int, int);
trmontgomery 0:daf9e2f8e1a1 259 int read_pixel(int, int);
trmontgomery 0:daf9e2f8e1a1 260 void pen_size(char);
trmontgomery 0:daf9e2f8e1a1 261 void BLIT(int x, int y, int w, int h, const int *colors);
trmontgomery 0:daf9e2f8e1a1 262
trmontgomery 0:daf9e2f8e1a1 263 // Text Commands
trmontgomery 0:daf9e2f8e1a1 264 void set_font(char);
trmontgomery 0:daf9e2f8e1a1 265 void set_font_size(char width, char height);
trmontgomery 0:daf9e2f8e1a1 266 void text_mode(char);
trmontgomery 0:daf9e2f8e1a1 267 void text_bold(char);
trmontgomery 0:daf9e2f8e1a1 268 void text_italic(char);
trmontgomery 0:daf9e2f8e1a1 269 void text_inverse(char);
trmontgomery 0:daf9e2f8e1a1 270 void text_underline(char);
trmontgomery 0:daf9e2f8e1a1 271 void text_width(char);
trmontgomery 0:daf9e2f8e1a1 272 void text_height(char);
trmontgomery 0:daf9e2f8e1a1 273 void text_char(char, char, char, int);
trmontgomery 0:daf9e2f8e1a1 274 void text_string(char *, char, char, char, int);
trmontgomery 0:daf9e2f8e1a1 275 void locate(char, char);
trmontgomery 0:daf9e2f8e1a1 276 void color(int);
trmontgomery 0:daf9e2f8e1a1 277 void putc(char);
trmontgomery 0:daf9e2f8e1a1 278 void puts(char *);
trmontgomery 0:daf9e2f8e1a1 279
trmontgomery 0:daf9e2f8e1a1 280 //Media Commands
trmontgomery 0:daf9e2f8e1a1 281 int media_init();
trmontgomery 0:daf9e2f8e1a1 282 void set_byte_address(int, int);
trmontgomery 0:daf9e2f8e1a1 283 void set_sector_address(int, int);
trmontgomery 0:daf9e2f8e1a1 284 char read_byte();
trmontgomery 0:daf9e2f8e1a1 285 int read_word();
trmontgomery 0:daf9e2f8e1a1 286 void write_byte(int);
trmontgomery 0:daf9e2f8e1a1 287 void write_word(int);
trmontgomery 0:daf9e2f8e1a1 288 void flush_media();
trmontgomery 0:daf9e2f8e1a1 289 void display_image(int, int);
trmontgomery 0:daf9e2f8e1a1 290 void display_video(int, int);
trmontgomery 0:daf9e2f8e1a1 291 void display_frame(int, int, int);
trmontgomery 0:daf9e2f8e1a1 292
trmontgomery 0:daf9e2f8e1a1 293 // Screen Data
trmontgomery 0:daf9e2f8e1a1 294 int type;
trmontgomery 0:daf9e2f8e1a1 295 int revision;
trmontgomery 0:daf9e2f8e1a1 296 int firmware;
trmontgomery 0:daf9e2f8e1a1 297 int reserved1;
trmontgomery 0:daf9e2f8e1a1 298 int reserved2;
trmontgomery 0:daf9e2f8e1a1 299
trmontgomery 0:daf9e2f8e1a1 300 // Text data
trmontgomery 0:daf9e2f8e1a1 301 char current_col;
trmontgomery 0:daf9e2f8e1a1 302 char current_row;
trmontgomery 0:daf9e2f8e1a1 303 int current_color;
trmontgomery 0:daf9e2f8e1a1 304 char current_font;
trmontgomery 0:daf9e2f8e1a1 305 char current_orientation;
trmontgomery 0:daf9e2f8e1a1 306 char max_col;
trmontgomery 0:daf9e2f8e1a1 307 char max_row;
trmontgomery 0:daf9e2f8e1a1 308 int current_w, current_h;
trmontgomery 0:daf9e2f8e1a1 309 int current_fx, current_fy;
trmontgomery 0:daf9e2f8e1a1 310 int current_wf, current_hf;
trmontgomery 0:daf9e2f8e1a1 311
trmontgomery 0:daf9e2f8e1a1 312
trmontgomery 0:daf9e2f8e1a1 313 protected :
trmontgomery 0:daf9e2f8e1a1 314
trmontgomery 0:daf9e2f8e1a1 315 Serial _cmd;
trmontgomery 0:daf9e2f8e1a1 316 DigitalOut _rst;
trmontgomery 0:daf9e2f8e1a1 317 //used by printf
trmontgomery 0:daf9e2f8e1a1 318 virtual int _putc(int c) {
trmontgomery 0:daf9e2f8e1a1 319 putc(c);
trmontgomery 0:daf9e2f8e1a1 320 return 0;
trmontgomery 0:daf9e2f8e1a1 321 };
trmontgomery 0:daf9e2f8e1a1 322 virtual int _getc() {
trmontgomery 0:daf9e2f8e1a1 323 return -1;
trmontgomery 0:daf9e2f8e1a1 324 }
trmontgomery 0:daf9e2f8e1a1 325
trmontgomery 0:daf9e2f8e1a1 326 void freeBUFFER (void);
trmontgomery 0:daf9e2f8e1a1 327 void writeBYTE (char);
trmontgomery 0:daf9e2f8e1a1 328 void writeBYTEfast (char);
trmontgomery 0:daf9e2f8e1a1 329 int writeCOMMAND(char *, int);
trmontgomery 0:daf9e2f8e1a1 330 int writeCOMMANDnull(char *, int);
trmontgomery 0:daf9e2f8e1a1 331 int readVERSION (char *, int);
trmontgomery 0:daf9e2f8e1a1 332 int getSTATUS (char *, int);
trmontgomery 0:daf9e2f8e1a1 333 int version (void);
trmontgomery 0:daf9e2f8e1a1 334 #if DEBUGMODE
trmontgomery 0:daf9e2f8e1a1 335 Serial pc;
trmontgomery 0:daf9e2f8e1a1 336 #endif // DEBUGMODE
trmontgomery 0:daf9e2f8e1a1 337 };
trmontgomery 0:daf9e2f8e1a1 338
trmontgomery 0:daf9e2f8e1a1 339 typedef unsigned char BYTE;
trmontgomery 0:daf9e2f8e1a1 340 #endif
trmontgomery 0:daf9e2f8e1a1 341
trmontgomery 0:daf9e2f8e1a1 342
trmontgomery 0:daf9e2f8e1a1 343
trmontgomery 0:daf9e2f8e1a1 344
trmontgomery 0:daf9e2f8e1a1 345
trmontgomery 0:daf9e2f8e1a1 346
trmontgomery 0:daf9e2f8e1a1 347
trmontgomery 0:daf9e2f8e1a1 348