Simon Sez prototype
Dependencies: 4DGL-uLCD-SE MMA8452 SDFileSystem mbed wave_player
main.cpp@1:86a07445351b, 2017-07-14 (annotated)
- Committer:
- kennyainny
- Date:
- Fri Jul 14 23:29:31 2017 +0000
- Revision:
- 1:86a07445351b
- Parent:
- 0:10177c8cba93
prototype
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kennyainny | 0:10177c8cba93 | 1 | /********************************** |
kennyainny | 0:10177c8cba93 | 2 | * Author: |
kennyainny | 0:10177c8cba93 | 3 | * Institution: Georgia Tech |
kennyainny | 0:10177c8cba93 | 4 | * |
kennyainny | 0:10177c8cba93 | 5 | * Title: MAIN |
kennyainny | 0:10177c8cba93 | 6 | * Class: ECE2035 |
kennyainny | 0:10177c8cba93 | 7 | * Assignment: Project 2 Summer 2017 |
kennyainny | 0:10177c8cba93 | 8 | **********************************/ |
kennyainny | 0:10177c8cba93 | 9 | |
kennyainny | 0:10177c8cba93 | 10 | //includes |
kennyainny | 0:10177c8cba93 | 11 | #include <string.h> |
kennyainny | 0:10177c8cba93 | 12 | #include <stdio.h> |
kennyainny | 0:10177c8cba93 | 13 | #include <math.h> |
kennyainny | 0:10177c8cba93 | 14 | #include <cstdarg> |
kennyainny | 0:10177c8cba93 | 15 | #include "mbed.h" |
kennyainny | 0:10177c8cba93 | 16 | #include "SDFileSystem.h" |
kennyainny | 0:10177c8cba93 | 17 | #include "wave_player.h" |
kennyainny | 0:10177c8cba93 | 18 | #include "MMA8452.h" |
kennyainny | 0:10177c8cba93 | 19 | |
kennyainny | 0:10177c8cba93 | 20 | #include "uLCD_4DGL.h" |
kennyainny | 0:10177c8cba93 | 21 | |
kennyainny | 0:10177c8cba93 | 22 | //defines |
kennyainny | 0:10177c8cba93 | 23 | #define YELLOW 0xFFFF00 |
kennyainny | 0:10177c8cba93 | 24 | #define BUFFSIZE 100 |
kennyainny | 0:10177c8cba93 | 25 | #define PI 3.141592653589793238462643f |
kennyainny | 0:10177c8cba93 | 26 | #define TEST_WAVFILE "/sd/wavfiles/BUZZER.wav" |
kennyainny | 0:10177c8cba93 | 27 | #define SEQ_LEN 20 |
kennyainny | 0:10177c8cba93 | 28 | |
kennyainny | 0:10177c8cba93 | 29 | //function prototypes |
kennyainny | 0:10177c8cba93 | 30 | int invert(int value); |
kennyainny | 0:10177c8cba93 | 31 | void print(const char *format, ...); |
kennyainny | 0:10177c8cba93 | 32 | void lowerCase(char *src); |
kennyainny | 0:10177c8cba93 | 33 | void playSound(void); |
kennyainny | 0:10177c8cba93 | 34 | void pb1_hit_callback(void); |
kennyainny | 0:10177c8cba93 | 35 | void pb2_hit_callback(void); |
kennyainny | 0:10177c8cba93 | 36 | void pb3_hit_callback(void); |
kennyainny | 0:10177c8cba93 | 37 | void pb4_hit_callback(void); |
kennyainny | 0:10177c8cba93 | 38 | void createSequence(int *Sequence, int length); |
kennyainny | 0:10177c8cba93 | 39 | void drawFore(int position, int color); |
kennyainny | 0:10177c8cba93 | 40 | void drawBack(int position, int color); |
kennyainny | 0:10177c8cba93 | 41 | void drawNum (int i); |
kennyainny | 0:10177c8cba93 | 42 | |
kennyainny | 0:10177c8cba93 | 43 | //initialize hardware |
kennyainny | 0:10177c8cba93 | 44 | SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sck, cs |
kennyainny | 0:10177c8cba93 | 45 | uLCD_4DGL uLCD(p9, p10, p11); // uLCD-144-G2 screen, (serial tx, serial rx, reset pin) |
kennyainny | 0:10177c8cba93 | 46 | AnalogOut DACout(p18); |
kennyainny | 0:10177c8cba93 | 47 | wave_player waver(&DACout); |
kennyainny | 0:10177c8cba93 | 48 | |
kennyainny | 0:10177c8cba93 | 49 | DigitalIn pb1(p21); |
kennyainny | 0:10177c8cba93 | 50 | DigitalIn pb2(p22); |
kennyainny | 0:10177c8cba93 | 51 | DigitalIn pb3(p23); |
kennyainny | 0:10177c8cba93 | 52 | DigitalIn pb4(p24); |
kennyainny | 0:10177c8cba93 | 53 | |
kennyainny | 0:10177c8cba93 | 54 | AnalogIn randSeed(p20); |
kennyainny | 0:10177c8cba93 | 55 | |
kennyainny | 0:10177c8cba93 | 56 | Serial pc(USBTX,USBRX); // used by Accelerometer |
kennyainny | 0:10177c8cba93 | 57 | MMA8452 accel(p28, p27, 100000); // Accelerometer |
kennyainny | 0:10177c8cba93 | 58 | |
kennyainny | 0:10177c8cba93 | 59 | // array for Simon sequence |
kennyainny | 0:10177c8cba93 | 60 | int Sequence[SEQ_LEN]; |
kennyainny | 0:10177c8cba93 | 61 | |
kennyainny | 0:10177c8cba93 | 62 | //main |
kennyainny | 0:10177c8cba93 | 63 | int main() |
kennyainny | 0:10177c8cba93 | 64 | { |
kennyainny | 0:10177c8cba93 | 65 | // Use internal pullups for pushbuttons |
kennyainny | 0:10177c8cba93 | 66 | pb1.mode(PullUp); |
kennyainny | 0:10177c8cba93 | 67 | pb2.mode(PullUp); |
kennyainny | 0:10177c8cba93 | 68 | pb3.mode(PullUp); |
kennyainny | 0:10177c8cba93 | 69 | pb4.mode(PullUp); |
kennyainny | 0:10177c8cba93 | 70 | |
kennyainny | 0:10177c8cba93 | 71 | //check for wav file |
kennyainny | 0:10177c8cba93 | 72 | uLCD.cls(); |
kennyainny | 0:10177c8cba93 | 73 | uLCD.printf("Locating WAV files..."); |
kennyainny | 0:10177c8cba93 | 74 | FILE *test_file; |
kennyainny | 0:10177c8cba93 | 75 | //while(1) { |
kennyainny | 0:10177c8cba93 | 76 | test_file=fopen(TEST_WAVFILE,"r"); |
kennyainny | 0:10177c8cba93 | 77 | if(test_file != NULL) |
kennyainny | 0:10177c8cba93 | 78 | uLCD.printf("Wav file sucessfully loaded"); |
kennyainny | 0:10177c8cba93 | 79 | else |
kennyainny | 0:10177c8cba93 | 80 | uLCD.printf("Wav file not found"); |
kennyainny | 0:10177c8cba93 | 81 | wait(1); |
kennyainny | 0:10177c8cba93 | 82 | //} |
kennyainny | 0:10177c8cba93 | 83 | //fclose(test_file); |
kennyainny | 0:10177c8cba93 | 84 | |
kennyainny | 0:10177c8cba93 | 85 | uLCD.cls(); |
kennyainny | 0:10177c8cba93 | 86 | |
kennyainny | 0:10177c8cba93 | 87 | // set background colors / clear screen |
kennyainny | 0:10177c8cba93 | 88 | uLCD.background_color(WHITE); |
kennyainny | 0:10177c8cba93 | 89 | uLCD.cls(); |
kennyainny | 0:10177c8cba93 | 90 | uLCD.background_color(WHITE); |
kennyainny | 0:10177c8cba93 | 91 | uLCD.textbackground_color(WHITE); |
kennyainny | 0:10177c8cba93 | 92 | |
kennyainny | 0:10177c8cba93 | 93 | //loop |
kennyainny | 0:10177c8cba93 | 94 | int val1, val2, val3, val4; |
kennyainny | 0:10177c8cba93 | 95 | double x,y,z; |
kennyainny | 0:10177c8cba93 | 96 | |
kennyainny | 0:10177c8cba93 | 97 | while(1) { |
kennyainny | 0:10177c8cba93 | 98 | //have fun... |
kennyainny | 0:10177c8cba93 | 99 | // pushbuttons pull low when pressed, so invert them |
kennyainny | 0:10177c8cba93 | 100 | val1 = invert(pb1.read()); |
kennyainny | 0:10177c8cba93 | 101 | val2 = invert(pb2.read()); |
kennyainny | 0:10177c8cba93 | 102 | val3 = invert(pb3.read()); |
kennyainny | 0:10177c8cba93 | 103 | val4 = invert(pb4.read()); |
kennyainny | 0:10177c8cba93 | 104 | |
kennyainny | 0:10177c8cba93 | 105 | accel.readXYZGravity(&x,&y,&z); |
kennyainny | 0:10177c8cba93 | 106 | //pc.printf("read gravity: x=%lf, y=%lf, z=%lf\n", x, y, z); |
kennyainny | 0:10177c8cba93 | 107 | |
kennyainny | 0:10177c8cba93 | 108 | wait(1); |
kennyainny | 0:10177c8cba93 | 109 | |
kennyainny | 0:10177c8cba93 | 110 | if(val1|| x>=0.3) { //left = 1 |
kennyainny | 0:10177c8cba93 | 111 | pb1_hit_callback(); |
kennyainny | 0:10177c8cba93 | 112 | } |
kennyainny | 0:10177c8cba93 | 113 | if(val2 || x<=-0.3){ //right = 2 |
kennyainny | 0:10177c8cba93 | 114 | pb2_hit_callback(); |
kennyainny | 0:10177c8cba93 | 115 | } |
kennyainny | 0:10177c8cba93 | 116 | if(val3|| y<=-0.3){ //up = 3 |
kennyainny | 0:10177c8cba93 | 117 | pb3_hit_callback(); |
kennyainny | 0:10177c8cba93 | 118 | } |
kennyainny | 0:10177c8cba93 | 119 | if(val4 || y>=0.3){ // down = 4 |
kennyainny | 0:10177c8cba93 | 120 | pb4_hit_callback(); |
kennyainny | 0:10177c8cba93 | 121 | } |
kennyainny | 0:10177c8cba93 | 122 | |
kennyainny | 0:10177c8cba93 | 123 | // draw some colors |
kennyainny | 0:10177c8cba93 | 124 | drawFore(0, RED); |
kennyainny | 0:10177c8cba93 | 125 | wait(0.2); |
kennyainny | 0:10177c8cba93 | 126 | drawBack(0, WHITE); |
kennyainny | 0:10177c8cba93 | 127 | drawFore(1, GREEN); |
kennyainny | 0:10177c8cba93 | 128 | wait(0.2); |
kennyainny | 0:10177c8cba93 | 129 | drawBack(1, WHITE); |
kennyainny | 0:10177c8cba93 | 130 | drawFore(2, YELLOW); |
kennyainny | 0:10177c8cba93 | 131 | wait(0.2); |
kennyainny | 0:10177c8cba93 | 132 | drawBack(2, WHITE); |
kennyainny | 0:10177c8cba93 | 133 | drawFore(3, BLUE); |
kennyainny | 0:10177c8cba93 | 134 | wait(0.2); |
kennyainny | 0:10177c8cba93 | 135 | drawBack(3, WHITE); |
kennyainny | 0:10177c8cba93 | 136 | |
kennyainny | 0:10177c8cba93 | 137 | } |
kennyainny | 0:10177c8cba93 | 138 | //end loop |
kennyainny | 0:10177c8cba93 | 139 | } |
kennyainny | 0:10177c8cba93 | 140 | |
kennyainny | 0:10177c8cba93 | 141 | |
kennyainny | 0:10177c8cba93 | 142 | //create a sequence and store in Sequence[] |
kennyainny | 0:10177c8cba93 | 143 | void createSequence(int *Sequence, int length) |
kennyainny | 0:10177c8cba93 | 144 | { |
kennyainny | 0:10177c8cba93 | 145 | srand((int ) (randSeed * 50000)); // seed the pseudo-random number generator with electrical noise from a pin |
kennyainny | 0:10177c8cba93 | 146 | for(int i=0; i<length; i++) { |
kennyainny | 0:10177c8cba93 | 147 | Sequence[i] = rand() % 4; |
kennyainny | 0:10177c8cba93 | 148 | } |
kennyainny | 0:10177c8cba93 | 149 | } |
kennyainny | 0:10177c8cba93 | 150 | |
kennyainny | 0:10177c8cba93 | 151 | //fcn to play a wav |
kennyainny | 0:10177c8cba93 | 152 | void playSound(char * wav) |
kennyainny | 0:10177c8cba93 | 153 | { |
kennyainny | 0:10177c8cba93 | 154 | //open wav file |
kennyainny | 0:10177c8cba93 | 155 | FILE *wave_file; |
kennyainny | 0:10177c8cba93 | 156 | wave_file=fopen(wav,"r"); |
kennyainny | 0:10177c8cba93 | 157 | |
kennyainny | 0:10177c8cba93 | 158 | //play wav file |
kennyainny | 0:10177c8cba93 | 159 | waver.play(wave_file); |
kennyainny | 0:10177c8cba93 | 160 | |
kennyainny | 0:10177c8cba93 | 161 | //close wav file |
kennyainny | 0:10177c8cba93 | 162 | fclose(wave_file); |
kennyainny | 0:10177c8cba93 | 163 | } |
kennyainny | 0:10177c8cba93 | 164 | |
kennyainny | 0:10177c8cba93 | 165 | //fcn to print to console |
kennyainny | 0:10177c8cba93 | 166 | void print(const char *format, ...) |
kennyainny | 0:10177c8cba93 | 167 | { |
kennyainny | 0:10177c8cba93 | 168 | //temp variables |
kennyainny | 0:10177c8cba93 | 169 | char buffer[BUFFSIZE]; |
kennyainny | 0:10177c8cba93 | 170 | char temp[BUFFSIZE-6]; |
kennyainny | 0:10177c8cba93 | 171 | |
kennyainny | 0:10177c8cba93 | 172 | //construct message part 1 |
kennyainny | 0:10177c8cba93 | 173 | sprintf(buffer, "print-"); |
kennyainny | 0:10177c8cba93 | 174 | |
kennyainny | 0:10177c8cba93 | 175 | //construct message part 2 |
kennyainny | 0:10177c8cba93 | 176 | va_list arguments; |
kennyainny | 0:10177c8cba93 | 177 | va_start(arguments, format); |
kennyainny | 0:10177c8cba93 | 178 | vsnprintf(temp, BUFFSIZE-7, format, arguments); |
kennyainny | 0:10177c8cba93 | 179 | va_end(arguments); |
kennyainny | 0:10177c8cba93 | 180 | |
kennyainny | 0:10177c8cba93 | 181 | //concatenate parts |
kennyainny | 0:10177c8cba93 | 182 | strcat(buffer, temp); |
kennyainny | 0:10177c8cba93 | 183 | |
kennyainny | 0:10177c8cba93 | 184 | //send message |
kennyainny | 0:10177c8cba93 | 185 | pc.printf(buffer); |
kennyainny | 0:10177c8cba93 | 186 | } |
kennyainny | 0:10177c8cba93 | 187 | |
kennyainny | 0:10177c8cba93 | 188 | //fcn to convert string to lowercase |
kennyainny | 0:10177c8cba93 | 189 | void lowerCase(char *src) |
kennyainny | 0:10177c8cba93 | 190 | { |
kennyainny | 0:10177c8cba93 | 191 | int i=0;; |
kennyainny | 0:10177c8cba93 | 192 | while(src[i] != '\0') { |
kennyainny | 0:10177c8cba93 | 193 | if((src[i] > 64) && (src[i] < 91)) { |
kennyainny | 0:10177c8cba93 | 194 | src[i]+=32; |
kennyainny | 0:10177c8cba93 | 195 | } |
kennyainny | 0:10177c8cba93 | 196 | i++; |
kennyainny | 0:10177c8cba93 | 197 | } |
kennyainny | 0:10177c8cba93 | 198 | return; |
kennyainny | 0:10177c8cba93 | 199 | } |
kennyainny | 0:10177c8cba93 | 200 | |
kennyainny | 0:10177c8cba93 | 201 | //function to perform bitwise inversion |
kennyainny | 0:10177c8cba93 | 202 | int invert(int value) |
kennyainny | 0:10177c8cba93 | 203 | { |
kennyainny | 0:10177c8cba93 | 204 | if (value == 0) { |
kennyainny | 0:10177c8cba93 | 205 | return 1; |
kennyainny | 0:10177c8cba93 | 206 | } else { |
kennyainny | 0:10177c8cba93 | 207 | return 0; |
kennyainny | 0:10177c8cba93 | 208 | } |
kennyainny | 0:10177c8cba93 | 209 | } |
kennyainny | 0:10177c8cba93 | 210 | |
kennyainny | 0:10177c8cba93 | 211 | //functions to call when a pushbutton is pressed |
kennyainny | 0:10177c8cba93 | 212 | void pb1_hit_callback (void) |
kennyainny | 0:10177c8cba93 | 213 | { |
kennyainny | 0:10177c8cba93 | 214 | drawNum(1); |
kennyainny | 0:10177c8cba93 | 215 | } |
kennyainny | 0:10177c8cba93 | 216 | void pb2_hit_callback (void) |
kennyainny | 0:10177c8cba93 | 217 | { |
kennyainny | 0:10177c8cba93 | 218 | drawNum(2); |
kennyainny | 0:10177c8cba93 | 219 | } |
kennyainny | 0:10177c8cba93 | 220 | void pb3_hit_callback (void) |
kennyainny | 0:10177c8cba93 | 221 | { |
kennyainny | 0:10177c8cba93 | 222 | drawNum(3); |
kennyainny | 0:10177c8cba93 | 223 | } |
kennyainny | 0:10177c8cba93 | 224 | void pb4_hit_callback (void) |
kennyainny | 0:10177c8cba93 | 225 | { |
kennyainny | 0:10177c8cba93 | 226 | drawNum(4); |
kennyainny | 0:10177c8cba93 | 227 | } |
kennyainny | 0:10177c8cba93 | 228 | |
kennyainny | 0:10177c8cba93 | 229 | //color the background of one of the four corners |
kennyainny | 0:10177c8cba93 | 230 | void drawBack(int position, int color) |
kennyainny | 0:10177c8cba93 | 231 | { |
kennyainny | 0:10177c8cba93 | 232 | int x11, x12, x21, x22, y11, y12, y21, y22; |
kennyainny | 0:10177c8cba93 | 233 | |
kennyainny | 0:10177c8cba93 | 234 | switch(position) { |
kennyainny | 0:10177c8cba93 | 235 | case 3: |
kennyainny | 0:10177c8cba93 | 236 | x11 = 64; |
kennyainny | 0:10177c8cba93 | 237 | x12 = 127; |
kennyainny | 0:10177c8cba93 | 238 | x21 = 85; |
kennyainny | 0:10177c8cba93 | 239 | x22 = 127; |
kennyainny | 0:10177c8cba93 | 240 | y11 = 85; |
kennyainny | 0:10177c8cba93 | 241 | y12 = 127; |
kennyainny | 0:10177c8cba93 | 242 | y21 = 64; |
kennyainny | 0:10177c8cba93 | 243 | y22 = 84; |
kennyainny | 0:10177c8cba93 | 244 | break; |
kennyainny | 0:10177c8cba93 | 245 | case 2: |
kennyainny | 0:10177c8cba93 | 246 | x11 = 0; |
kennyainny | 0:10177c8cba93 | 247 | x12 = 63; |
kennyainny | 0:10177c8cba93 | 248 | x21 = 0; |
kennyainny | 0:10177c8cba93 | 249 | x22 = 42; |
kennyainny | 0:10177c8cba93 | 250 | y11 = 85; |
kennyainny | 0:10177c8cba93 | 251 | y12 = 127; |
kennyainny | 0:10177c8cba93 | 252 | y21 = 64; |
kennyainny | 0:10177c8cba93 | 253 | y22 = 84; |
kennyainny | 0:10177c8cba93 | 254 | break; |
kennyainny | 0:10177c8cba93 | 255 | case 1: |
kennyainny | 0:10177c8cba93 | 256 | x11 = 0; |
kennyainny | 0:10177c8cba93 | 257 | x12 = 63; |
kennyainny | 0:10177c8cba93 | 258 | x21 = 0; |
kennyainny | 0:10177c8cba93 | 259 | x22 = 42; |
kennyainny | 0:10177c8cba93 | 260 | y11 = 0; |
kennyainny | 0:10177c8cba93 | 261 | y12 = 42; |
kennyainny | 0:10177c8cba93 | 262 | y21 = 43; |
kennyainny | 0:10177c8cba93 | 263 | y22 = 63; |
kennyainny | 0:10177c8cba93 | 264 | break; |
kennyainny | 0:10177c8cba93 | 265 | default: |
kennyainny | 0:10177c8cba93 | 266 | x11 = 64; |
kennyainny | 0:10177c8cba93 | 267 | x12 = 127; |
kennyainny | 0:10177c8cba93 | 268 | x21 = 85; |
kennyainny | 0:10177c8cba93 | 269 | x22 = 127; |
kennyainny | 0:10177c8cba93 | 270 | y11 = 0; |
kennyainny | 0:10177c8cba93 | 271 | y12 = 42; |
kennyainny | 0:10177c8cba93 | 272 | y21 = 43; |
kennyainny | 0:10177c8cba93 | 273 | y22 = 63; |
kennyainny | 0:10177c8cba93 | 274 | } |
kennyainny | 0:10177c8cba93 | 275 | |
kennyainny | 0:10177c8cba93 | 276 | |
kennyainny | 0:10177c8cba93 | 277 | uLCD.filled_rectangle(x11, y11, x12, y12, color); |
kennyainny | 0:10177c8cba93 | 278 | uLCD.filled_rectangle(x21, y21, x22, y22, color); |
kennyainny | 0:10177c8cba93 | 279 | } |
kennyainny | 0:10177c8cba93 | 280 | |
kennyainny | 0:10177c8cba93 | 281 | //color the foreground of one of the four corners |
kennyainny | 0:10177c8cba93 | 282 | void drawFore(int position, int color) |
kennyainny | 0:10177c8cba93 | 283 | { |
kennyainny | 0:10177c8cba93 | 284 | int x11, x12, x21, x22, y11, y12, y21, y22; |
kennyainny | 0:10177c8cba93 | 285 | |
kennyainny | 0:10177c8cba93 | 286 | switch(position) { |
kennyainny | 0:10177c8cba93 | 287 | case 3: |
kennyainny | 0:10177c8cba93 | 288 | x11 = 68; |
kennyainny | 0:10177c8cba93 | 289 | x12 = 123; |
kennyainny | 0:10177c8cba93 | 290 | x21 = 89; |
kennyainny | 0:10177c8cba93 | 291 | x22 = 123; |
kennyainny | 0:10177c8cba93 | 292 | y11 = 89; |
kennyainny | 0:10177c8cba93 | 293 | y12 = 123; |
kennyainny | 0:10177c8cba93 | 294 | y21 = 68; |
kennyainny | 0:10177c8cba93 | 295 | y22 = 89; |
kennyainny | 0:10177c8cba93 | 296 | break; |
kennyainny | 0:10177c8cba93 | 297 | case 2: |
kennyainny | 0:10177c8cba93 | 298 | x11 = 4; |
kennyainny | 0:10177c8cba93 | 299 | x12 = 59; |
kennyainny | 0:10177c8cba93 | 300 | x21 = 4; |
kennyainny | 0:10177c8cba93 | 301 | x22 = 38; |
kennyainny | 0:10177c8cba93 | 302 | y11 = 89; |
kennyainny | 0:10177c8cba93 | 303 | y12 = 123; |
kennyainny | 0:10177c8cba93 | 304 | y21 = 68; |
kennyainny | 0:10177c8cba93 | 305 | y22 = 89; |
kennyainny | 0:10177c8cba93 | 306 | break; |
kennyainny | 0:10177c8cba93 | 307 | case 1: |
kennyainny | 0:10177c8cba93 | 308 | x11 = 4; |
kennyainny | 0:10177c8cba93 | 309 | x12 = 59; |
kennyainny | 0:10177c8cba93 | 310 | x21 = 4; |
kennyainny | 0:10177c8cba93 | 311 | x22 = 38; |
kennyainny | 0:10177c8cba93 | 312 | y11 = 4; |
kennyainny | 0:10177c8cba93 | 313 | y12 = 38; |
kennyainny | 0:10177c8cba93 | 314 | y21 = 39; |
kennyainny | 0:10177c8cba93 | 315 | y22 = 59; |
kennyainny | 0:10177c8cba93 | 316 | break; |
kennyainny | 0:10177c8cba93 | 317 | default: |
kennyainny | 0:10177c8cba93 | 318 | x11 = 68; |
kennyainny | 0:10177c8cba93 | 319 | x12 = 123; |
kennyainny | 0:10177c8cba93 | 320 | x21 = 89; |
kennyainny | 0:10177c8cba93 | 321 | x22 = 123; |
kennyainny | 0:10177c8cba93 | 322 | y11 = 4; |
kennyainny | 0:10177c8cba93 | 323 | y12 = 38; |
kennyainny | 0:10177c8cba93 | 324 | y21 = 39; |
kennyainny | 0:10177c8cba93 | 325 | y22 = 59; |
kennyainny | 0:10177c8cba93 | 326 | } |
kennyainny | 0:10177c8cba93 | 327 | |
kennyainny | 0:10177c8cba93 | 328 | |
kennyainny | 0:10177c8cba93 | 329 | uLCD.filled_rectangle(x11, y11, x12, y12, color); |
kennyainny | 0:10177c8cba93 | 330 | uLCD.filled_rectangle(x21, y21, x22, y22, color); |
kennyainny | 0:10177c8cba93 | 331 | } |
kennyainny | 0:10177c8cba93 | 332 | |
kennyainny | 0:10177c8cba93 | 333 | //print a number in the middle of the screen |
kennyainny | 0:10177c8cba93 | 334 | void drawNum(int i) { |
kennyainny | 0:10177c8cba93 | 335 | uLCD.text_width(3); |
kennyainny | 0:10177c8cba93 | 336 | uLCD.text_height(3); |
kennyainny | 0:10177c8cba93 | 337 | uLCD.color(BLACK); |
kennyainny | 0:10177c8cba93 | 338 | uLCD.locate(2,2); |
kennyainny | 0:10177c8cba93 | 339 | uLCD.printf("%2D",i); |
kennyainny | 0:10177c8cba93 | 340 | } |