Library for uVGAIII

Dependents:   uVGAIII_demo

Committer:
ivygatech
Date:
Mon Mar 24 17:38:36 2014 +0000
Revision:
1:cd4cc4298b2a
Parent:
0:de1ab53f3480
Child:
2:60f6946df58c
Update documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ivygatech 0:de1ab53f3480 1 //
ivygatech 0:de1ab53f3480 2 // uVGAIII is a class to drive 4D Systems TFT touch screens
ivygatech 0:de1ab53f3480 3 //
ivygatech 0:de1ab53f3480 4 // Copyright (C) <2010> Stephane ROCHON <stephane.rochon at free.fr>
ivygatech 0:de1ab53f3480 5 //
ivygatech 0:de1ab53f3480 6 // uVGAIII is free software: you can redistribute it and/or modify
ivygatech 0:de1ab53f3480 7 // it under the terms of the GNU General Public License as published by
ivygatech 0:de1ab53f3480 8 // the Free Software Foundation, either version 3 of the License, or
ivygatech 0:de1ab53f3480 9 // (at your option) any later version.
ivygatech 0:de1ab53f3480 10 //
ivygatech 0:de1ab53f3480 11 // uVGAIII is distributed in the hope that it will be useful,
ivygatech 0:de1ab53f3480 12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
ivygatech 0:de1ab53f3480 13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
ivygatech 0:de1ab53f3480 14 // GNU General Public License for more details.
ivygatech 0:de1ab53f3480 15 //
ivygatech 0:de1ab53f3480 16 // You should have received a copy of the GNU General Public License
ivygatech 0:de1ab53f3480 17 // along with uVGAIII. If not, see <http://www.gnu.org/licenses/>.
ivygatech 0:de1ab53f3480 18
ivygatech 0:de1ab53f3480 19 // @author Stephane Rochon
ivygatech 0:de1ab53f3480 20
ivygatech 0:de1ab53f3480 21 #include "mbed.h"
ivygatech 0:de1ab53f3480 22
ivygatech 0:de1ab53f3480 23 // Debug Verbose on terminal enabled
ivygatech 0:de1ab53f3480 24 #ifndef DEBUGMODE
ivygatech 0:de1ab53f3480 25 #define DEBUGMODE 1
ivygatech 0:de1ab53f3480 26 #endif
ivygatech 0:de1ab53f3480 27
ivygatech 0:de1ab53f3480 28 // Common WAIT value in millisecond
ivygatech 0:de1ab53f3480 29 #define TEMPO 5
ivygatech 0:de1ab53f3480 30
ivygatech 0:de1ab53f3480 31 // 4DGL Functions values
ivygatech 0:de1ab53f3480 32 // Graphic Commands values
ivygatech 0:de1ab53f3480 33 #define CLS 0xFFCD
ivygatech 0:de1ab53f3480 34 #define BCKGDCOLOR 0xFFA4
ivygatech 0:de1ab53f3480 35 #define SCREENMODE 0xFF9E
ivygatech 0:de1ab53f3480 36 #define CIRCLE 0xFFC3
ivygatech 0:de1ab53f3480 37 #define CIRCLE_F 0xFFC2
ivygatech 0:de1ab53f3480 38 #define TRIANGLE 0xFFBF
ivygatech 0:de1ab53f3480 39 #define TRIANGLE_F 0xFFA9
ivygatech 0:de1ab53f3480 40 #define LINE 0xFFC8
ivygatech 0:de1ab53f3480 41 #define RECTANGLE 0xFFC5
ivygatech 0:de1ab53f3480 42 #define RECTANGLE_F 0xFFC4
ivygatech 0:de1ab53f3480 43 #define ELLIPSE 0xFFB2
ivygatech 0:de1ab53f3480 44 #define ELLIPSE_F 0xFFB1
ivygatech 0:de1ab53f3480 45 #define PUTPIXEL 0xFFC1
ivygatech 0:de1ab53f3480 46 #define READPIXEL 0xFFC0
ivygatech 0:de1ab53f3480 47 #define SCREENCOPY 0xFFAD
ivygatech 0:de1ab53f3480 48 #define CLIPPING 0xFFA2
ivygatech 0:de1ab53f3480 49 #define SETCLIPWIN 0xFFB5
ivygatech 0:de1ab53f3480 50 #define EXTCLIPREG 0xFFB3
ivygatech 0:de1ab53f3480 51 #define BUTTON 0x0011
ivygatech 0:de1ab53f3480 52 #define PANEL 0xFFAF
ivygatech 0:de1ab53f3480 53 #define SLIDER 0xFFAE
ivygatech 0:de1ab53f3480 54 #define CHANGECOLOR 0xFFB4
ivygatech 0:de1ab53f3480 55 #define MOVEORIGIN 0xFFCC
ivygatech 0:de1ab53f3480 56 #define LINEPATTERN 0xFF9B
ivygatech 0:de1ab53f3480 57 #define OUTLINECOLOR 0xFF9D
ivygatech 0:de1ab53f3480 58 #define TRANSPARENCY 0xFFA0
ivygatech 0:de1ab53f3480 59 #define TRANSPCOLOR 0xFFA1
ivygatech 0:de1ab53f3480 60 #define PARAMETERS 0xFFCE
ivygatech 0:de1ab53f3480 61
ivygatech 0:de1ab53f3480 62 // System Commands
ivygatech 0:de1ab53f3480 63 #define BAUDRATE 0x0026
ivygatech 0:de1ab53f3480 64 #define SPEVERSION 0x001B
ivygatech 0:de1ab53f3480 65 #define PMMCVERSION 0x001C
ivygatech 0:de1ab53f3480 66 #define SETVOLUME 0xFF00
ivygatech 0:de1ab53f3480 67
ivygatech 0:de1ab53f3480 68 // Text and String Commands
ivygatech 0:de1ab53f3480 69 #define MOVECURSOR 0xFFE9
ivygatech 0:de1ab53f3480 70 #define PUTCHAR 0xFFFE
ivygatech 0:de1ab53f3480 71 #define SETFONT 0xFFE5
ivygatech 0:de1ab53f3480 72 #define TEXTOPACITY 0xFFDF
ivygatech 0:de1ab53f3480 73 #define TEXTFGCOLOR 0xFFE7
ivygatech 0:de1ab53f3480 74 #define TEXTBGCOLOR 0xFFE6
ivygatech 0:de1ab53f3480 75 #define TEXTWIDTH 0xFFE4
ivygatech 0:de1ab53f3480 76 #define TEXTHEIGHT 0xFFE3
ivygatech 0:de1ab53f3480 77 #define TEXTXGAP 0xFFE2
ivygatech 0:de1ab53f3480 78 #define TEXTYGAP 0xFFE1
ivygatech 0:de1ab53f3480 79 #define TEXTBOLD 0xFFDE
ivygatech 0:de1ab53f3480 80 #define TEXTINVERSE 0xFFDC
ivygatech 0:de1ab53f3480 81 #define TEXTITALIC 0xFFDD
ivygatech 0:de1ab53f3480 82 #define TEXTUNDLINE 0xFFDB
ivygatech 0:de1ab53f3480 83 #define TEXTATTRIBU 0xFFDA
ivygatech 0:de1ab53f3480 84 #define PUTSTRING 0x0018
ivygatech 0:de1ab53f3480 85 #define CHARWIDTH 0x001E
ivygatech 0:de1ab53f3480 86 #define CHARHEIGHT 0x001D
ivygatech 0:de1ab53f3480 87 #define GETTOUCH '\x6F'
ivygatech 0:de1ab53f3480 88 #define WAITTOUCH '\x77'
ivygatech 0:de1ab53f3480 89 #define SETTOUCH '\x75'
ivygatech 0:de1ab53f3480 90
ivygatech 0:de1ab53f3480 91 // Touch Screen Commands
ivygatech 0:de1ab53f3480 92 #define TOUCHSET 0xFF38
ivygatech 0:de1ab53f3480 93 #define TOUCHGET 0xFF37
ivygatech 0:de1ab53f3480 94 #define TOUCHDETECT 0xFF39
ivygatech 0:de1ab53f3480 95
ivygatech 0:de1ab53f3480 96 // Slider
ivygatech 0:de1ab53f3480 97 #define INTENDED '\x00'
ivygatech 0:de1ab53f3480 98 #define S_RAISED '\x01'
ivygatech 0:de1ab53f3480 99 #define HIDDEN '\x02'
ivygatech 0:de1ab53f3480 100
ivygatech 0:de1ab53f3480 101 // Button
ivygatech 0:de1ab53f3480 102 #define DEPRESSED '\x00'
ivygatech 0:de1ab53f3480 103 #define B_RAISED '\x01'
ivygatech 0:de1ab53f3480 104
ivygatech 0:de1ab53f3480 105 // Panel
ivygatech 0:de1ab53f3480 106 #define RECESSED '\x00'
ivygatech 0:de1ab53f3480 107 #define P_RAISED '\x01'
ivygatech 0:de1ab53f3480 108
ivygatech 0:de1ab53f3480 109 // Screen answers
ivygatech 0:de1ab53f3480 110 #define ACK '\x06'
ivygatech 0:de1ab53f3480 111 #define NAK '\x15'
ivygatech 0:de1ab53f3480 112
ivygatech 0:de1ab53f3480 113 // Screen states
ivygatech 0:de1ab53f3480 114 #define OFF '\x00'
ivygatech 0:de1ab53f3480 115 #define ON '\x01'
ivygatech 0:de1ab53f3480 116
ivygatech 0:de1ab53f3480 117 // Graphics parameters
ivygatech 0:de1ab53f3480 118 #define OBJECTCOLOR 18
ivygatech 0:de1ab53f3480 119 #define RESOLUTION 32
ivygatech 0:de1ab53f3480 120 #define PGDISPLAY 33
ivygatech 0:de1ab53f3480 121 #define PGREAD 34
ivygatech 0:de1ab53f3480 122 #define PGWRITE 35
ivygatech 0:de1ab53f3480 123
ivygatech 0:de1ab53f3480 124 // Graphics modes
ivygatech 0:de1ab53f3480 125 #define SOLID '\x00'
ivygatech 0:de1ab53f3480 126 #define WIREFRAME '\x01'
ivygatech 0:de1ab53f3480 127
ivygatech 0:de1ab53f3480 128 // Text modes
ivygatech 0:de1ab53f3480 129 #define TRANSPARENT '\x00'
ivygatech 0:de1ab53f3480 130 #define OPAQUE '\x01'
ivygatech 0:de1ab53f3480 131
ivygatech 0:de1ab53f3480 132 // Fonts Sizes
ivygatech 0:de1ab53f3480 133 #define FONT1 '\x00' // 7X8
ivygatech 0:de1ab53f3480 134 #define FONT2 '\x01' // 8X8
ivygatech 0:de1ab53f3480 135 #define FONT3 '\x02' // 8X12
ivygatech 0:de1ab53f3480 136
ivygatech 0:de1ab53f3480 137 // Touch Values
ivygatech 0:de1ab53f3480 138 #define MOVE '\x03'
ivygatech 0:de1ab53f3480 139 #define STATUS '\x00'
ivygatech 0:de1ab53f3480 140 #define GETXPOSITION '\x01'
ivygatech 0:de1ab53f3480 141 #define GETYPOSITION '\x02'
ivygatech 0:de1ab53f3480 142
ivygatech 0:de1ab53f3480 143 // Data speed
ivygatech 0:de1ab53f3480 144 #define BAUD_110 0x0000
ivygatech 0:de1ab53f3480 145 #define BAUD_300 0x0001
ivygatech 0:de1ab53f3480 146 #define BAUD_600 0x0002
ivygatech 0:de1ab53f3480 147 #define BAUD_1200 0x0003
ivygatech 0:de1ab53f3480 148 #define BAUD_2400 0x0004
ivygatech 0:de1ab53f3480 149 #define BAUD_4800 0x0005
ivygatech 0:de1ab53f3480 150 #define BAUD_9600 0x0006
ivygatech 0:de1ab53f3480 151 #define BAUD_14400 0x0007
ivygatech 0:de1ab53f3480 152 #define BAUD_19200 0x0008
ivygatech 0:de1ab53f3480 153 #define BAUD_31250 0x0009
ivygatech 0:de1ab53f3480 154 #define BAUD_38400 0x000A
ivygatech 0:de1ab53f3480 155 #define BAUD_56000 0x000B
ivygatech 0:de1ab53f3480 156 #define BAUD_57600 0x000C
ivygatech 0:de1ab53f3480 157 #define BAUD_115200 0x000D
ivygatech 0:de1ab53f3480 158 #define BAUD_128000 0x000E
ivygatech 0:de1ab53f3480 159 #define BAUD_256000 0x000F
ivygatech 0:de1ab53f3480 160
ivygatech 0:de1ab53f3480 161 // Defined Colors
ivygatech 0:de1ab53f3480 162 #define BLACK 0x000000
ivygatech 0:de1ab53f3480 163 #define WHITE 0xFFFFFF
ivygatech 0:de1ab53f3480 164 #define LGREY 0xBFBFBF
ivygatech 0:de1ab53f3480 165 #define DGREY 0x5F5F5F
ivygatech 0:de1ab53f3480 166 #define RED 0xFF0000
ivygatech 0:de1ab53f3480 167 #define LIME 0x00FF00
ivygatech 0:de1ab53f3480 168 #define BLUE 0x0000FF
ivygatech 0:de1ab53f3480 169 #define YELLOW 0xFFFF00
ivygatech 0:de1ab53f3480 170 #define CYAN 0x00FFFF
ivygatech 0:de1ab53f3480 171 #define MAGENTA 0xFF00FF
ivygatech 0:de1ab53f3480 172 #define SILVER 0xC0C0C0
ivygatech 0:de1ab53f3480 173 #define GRAY 0x808080
ivygatech 0:de1ab53f3480 174 #define MAROON 0x800000
ivygatech 0:de1ab53f3480 175 #define OLIVE 0x808000
ivygatech 0:de1ab53f3480 176 #define GREEN 0x008000
ivygatech 0:de1ab53f3480 177 #define PURPLE 0x800080
ivygatech 0:de1ab53f3480 178 #define TEAL 0x008080
ivygatech 0:de1ab53f3480 179 #define NAVY 0x000080
ivygatech 0:de1ab53f3480 180
ivygatech 0:de1ab53f3480 181 // Mode data
ivygatech 0:de1ab53f3480 182 #define BACKLIGHT '\x00'
ivygatech 0:de1ab53f3480 183 #define DISPLAY '\x01'
ivygatech 0:de1ab53f3480 184 #define CONTRAST '\x02'
ivygatech 0:de1ab53f3480 185 #define POWER '\x03'
ivygatech 0:de1ab53f3480 186 #define ORIENTATION '\x04'
ivygatech 0:de1ab53f3480 187 #define TOUCH_CTRL '\x05'
ivygatech 0:de1ab53f3480 188 #define IMAGE_FORMAT '\x06'
ivygatech 0:de1ab53f3480 189 #define PROTECT_FAT '\x08'
ivygatech 0:de1ab53f3480 190
ivygatech 0:de1ab53f3480 191 // change this to your specific screen (newer versions) if needed
ivygatech 0:de1ab53f3480 192 // Startup orientation is PORTRAIT so SIZE_X must be lesser than SIZE_Y
ivygatech 0:de1ab53f3480 193 #define SIZE_X 480
ivygatech 0:de1ab53f3480 194 #define SIZE_Y 800
ivygatech 0:de1ab53f3480 195
ivygatech 0:de1ab53f3480 196 #define IS_LANDSCAPE 0
ivygatech 0:de1ab53f3480 197 #define IS_PORTRAIT 1
ivygatech 0:de1ab53f3480 198
ivygatech 0:de1ab53f3480 199 // Screen orientation
ivygatech 0:de1ab53f3480 200 #define LANDSCAPE '\x00'
ivygatech 0:de1ab53f3480 201 #define LANDSCAPE_R '\x01'
ivygatech 0:de1ab53f3480 202 #define PORTRAIT '\x02'
ivygatech 0:de1ab53f3480 203 #define PORTRAIT_R '\x03'
ivygatech 0:de1ab53f3480 204
ivygatech 1:cd4cc4298b2a 205 /**
ivygatech 1:cd4cc4298b2a 206 * This is a class for uVGAIII
ivygatech 1:cd4cc4298b2a 207 */
ivygatech 0:de1ab53f3480 208 class uVGAIII : public Stream
ivygatech 0:de1ab53f3480 209 {
ivygatech 0:de1ab53f3480 210
ivygatech 0:de1ab53f3480 211 public :
ivygatech 0:de1ab53f3480 212
ivygatech 0:de1ab53f3480 213 uVGAIII(PinName tx, PinName rx, PinName rst);
ivygatech 0:de1ab53f3480 214
ivygatech 0:de1ab53f3480 215 // General Commands *******************************************************************************
ivygatech 0:de1ab53f3480 216
ivygatech 0:de1ab53f3480 217 /** Clear the entire screen using the current background colour */
ivygatech 0:de1ab53f3480 218 void cls();
ivygatech 0:de1ab53f3480 219
ivygatech 0:de1ab53f3480 220 /** Reset screen */
ivygatech 0:de1ab53f3480 221 void reset();
ivygatech 0:de1ab53f3480 222
ivygatech 0:de1ab53f3480 223 /** Set serial Baud rate (both sides : screen and mbed)
ivygatech 0:de1ab53f3480 224 * @param Speed Correct BAUD value (see uVGAIII.h)
ivygatech 0:de1ab53f3480 225 */
ivygatech 0:de1ab53f3480 226 void baudrate(int speed);
ivygatech 0:de1ab53f3480 227
ivygatech 0:de1ab53f3480 228 /** Set internal speaker to specified value
ivygatech 0:de1ab53f3480 229 * @param value Correct range is 8 - 127
ivygatech 0:de1ab53f3480 230 */
ivygatech 0:de1ab53f3480 231 void set_volume(char value);
ivygatech 0:de1ab53f3480 232
ivygatech 0:de1ab53f3480 233 // Graphics Commands
ivygatech 0:de1ab53f3480 234 void screen_mode(char mode);
ivygatech 0:de1ab53f3480 235 void background_color(int color);
ivygatech 0:de1ab53f3480 236 void circle(int x , int y , int radius, int color);
ivygatech 0:de1ab53f3480 237 void filled_circle(int x, int y, int radius, int color);
ivygatech 0:de1ab53f3480 238 void triangle(int, int, int, int, int, int, int);
ivygatech 0:de1ab53f3480 239 void filled_triangle(int, int, int, int, int, int, int);
ivygatech 0:de1ab53f3480 240 void line(int, int, int, int, int);
ivygatech 0:de1ab53f3480 241 void rectangle(int, int, int, int, int);
ivygatech 0:de1ab53f3480 242 void filled_rectangle(int, int, int, int, int);
ivygatech 0:de1ab53f3480 243 void ellipse(int, int, int, int, int);
ivygatech 0:de1ab53f3480 244 void filled_ellipse(int, int, int, int, int);
ivygatech 0:de1ab53f3480 245 void button(int, int, int, int, int, int, int, int, char *);
ivygatech 0:de1ab53f3480 246 void panel(int, int, int, int, int, int);
ivygatech 0:de1ab53f3480 247 void slider(char, int, int, int, int, int, int, int);
ivygatech 0:de1ab53f3480 248 void put_pixel(int, int, int);
ivygatech 0:de1ab53f3480 249 int read_pixel(int, int);
ivygatech 0:de1ab53f3480 250 void screen_copy(int, int, int, int, int, int);
ivygatech 0:de1ab53f3480 251 void clipping(char);
ivygatech 0:de1ab53f3480 252 void set_clipping_win(int, int, int, int);
ivygatech 0:de1ab53f3480 253 void extend_clip_region();
ivygatech 0:de1ab53f3480 254 void change_color(int, int);
ivygatech 0:de1ab53f3480 255 void move_origin(int, int);
ivygatech 0:de1ab53f3480 256 void line_pattern(int);
ivygatech 0:de1ab53f3480 257 void outline_color(int);
ivygatech 0:de1ab53f3480 258 void transparency(char);
ivygatech 0:de1ab53f3480 259 void transparent_color(int);
ivygatech 0:de1ab53f3480 260 void graphics_parameters(int, int);
ivygatech 0:de1ab53f3480 261
ivygatech 0:de1ab53f3480 262 // Texts Commands
ivygatech 0:de1ab53f3480 263 void set_font(char);
ivygatech 0:de1ab53f3480 264 void move_cursor(int, int);
ivygatech 0:de1ab53f3480 265 void text_opacity(char);
ivygatech 0:de1ab53f3480 266 void text_width(int);
ivygatech 0:de1ab53f3480 267 void text_height(int);
ivygatech 0:de1ab53f3480 268 void text_x_gap(int);
ivygatech 0:de1ab53f3480 269 void text_y_gap(int);
ivygatech 0:de1ab53f3480 270 void text_bold(char);
ivygatech 0:de1ab53f3480 271 void text_inverse(char);
ivygatech 0:de1ab53f3480 272 void text_italic(char);
ivygatech 0:de1ab53f3480 273 void text_underline(char);
ivygatech 0:de1ab53f3480 274 void text_attributes(int);
ivygatech 0:de1ab53f3480 275 void put_char(char);
ivygatech 0:de1ab53f3480 276 void put_string(char *);
ivygatech 0:de1ab53f3480 277 void text_fgd_color(int);
ivygatech 0:de1ab53f3480 278 void text_bgd_color(int);
ivygatech 0:de1ab53f3480 279 void char_width(char);
ivygatech 0:de1ab53f3480 280 void char_height(char);
ivygatech 0:de1ab53f3480 281
ivygatech 0:de1ab53f3480 282 void locate(char, char);
ivygatech 0:de1ab53f3480 283 void color(int);
ivygatech 0:de1ab53f3480 284 void putc(char);
ivygatech 0:de1ab53f3480 285 void puts(char *);
ivygatech 0:de1ab53f3480 286
ivygatech 0:de1ab53f3480 287 // Touch Command
ivygatech 0:de1ab53f3480 288 void detect_touch_region(int, int, int, int);
ivygatech 0:de1ab53f3480 289 void touch_get_x(int *);
ivygatech 0:de1ab53f3480 290 void touch_get_y(int *);
ivygatech 0:de1ab53f3480 291 void touch_set(char);
ivygatech 0:de1ab53f3480 292 int touch_status(void);
ivygatech 0:de1ab53f3480 293
ivygatech 0:de1ab53f3480 294 // Screen Version Data
ivygatech 0:de1ab53f3480 295 int version;
ivygatech 0:de1ab53f3480 296 int SPEversion;
ivygatech 0:de1ab53f3480 297 int PmmCversion;
ivygatech 0:de1ab53f3480 298
ivygatech 0:de1ab53f3480 299 // Text data
ivygatech 0:de1ab53f3480 300 char current_col;
ivygatech 0:de1ab53f3480 301 char current_row;
ivygatech 0:de1ab53f3480 302 int current_color;
ivygatech 0:de1ab53f3480 303 char current_font;
ivygatech 0:de1ab53f3480 304 char current_orientation;
ivygatech 0:de1ab53f3480 305 char max_col;
ivygatech 0:de1ab53f3480 306 char max_row;
ivygatech 0:de1ab53f3480 307 int current_w, current_h;
ivygatech 0:de1ab53f3480 308 int current_fx, current_fy;
ivygatech 0:de1ab53f3480 309
ivygatech 0:de1ab53f3480 310 protected :
ivygatech 0:de1ab53f3480 311
ivygatech 0:de1ab53f3480 312 Serial _cmd;
ivygatech 0:de1ab53f3480 313 DigitalOut _rst;
ivygatech 0:de1ab53f3480 314
ivygatech 0:de1ab53f3480 315 //used by printf
ivygatech 0:de1ab53f3480 316 virtual int _putc(int c) {
ivygatech 0:de1ab53f3480 317 putc(c);
ivygatech 0:de1ab53f3480 318 return 0;
ivygatech 0:de1ab53f3480 319 };
ivygatech 0:de1ab53f3480 320 virtual int _getc() {
ivygatech 0:de1ab53f3480 321 return -1;
ivygatech 0:de1ab53f3480 322 }
ivygatech 0:de1ab53f3480 323
ivygatech 0:de1ab53f3480 324 void freeBUFFER (void);
ivygatech 0:de1ab53f3480 325 void writeBYTE (char);
ivygatech 0:de1ab53f3480 326 int writeCOMMAND(char *, int, int);
ivygatech 0:de1ab53f3480 327 int readVERSION (char *, int);
ivygatech 0:de1ab53f3480 328 void getTOUCH (char *, int, int *);
ivygatech 0:de1ab53f3480 329 int getSTATUS (char *, int);
ivygatech 0:de1ab53f3480 330 void speversion (void);
ivygatech 0:de1ab53f3480 331 void pmmcversion (void);
ivygatech 0:de1ab53f3480 332 #if DEBUGMODE
ivygatech 0:de1ab53f3480 333 Serial pc;
ivygatech 0:de1ab53f3480 334 #endif // DEBUGMODE
ivygatech 0:de1ab53f3480 335 };
ivygatech 0:de1ab53f3480 336
ivygatech 0:de1ab53f3480 337 typedef unsigned char BYTE;