Sound update

Dependencies:   4DGL-uLCD-SE Physac-MBED PinDetect SDFileSystem mbed-rtos mbed

Committer:
jaybalar
Date:
Thu Dec 08 18:42:16 2022 +0000
Revision:
27:a09981ebd532
Parent:
26:163d7ca8c42d
Child:
28:bccd14334bb9
Sound works

Who changed what in which revision?

UserRevisionLine numberNew contents of line
jstephens78 0:da114b98e013 1 #include "mbed.h"
dangulo7 1:d8cc5013651e 2 #include "rtos.h"
jstephens78 12:5d913b57da7c 3
jstephens78 12:5d913b57da7c 4 #include "globals.h"
jstephens78 12:5d913b57da7c 5 #include "hockey.h"
jstephens78 20:73e4f12277bd 6 #include "tetris.h"
jstephens78 12:5d913b57da7c 7
jsanchez307 26:163d7ca8c42d 8 //#include "Speaker.h"
jstephens78 10:f5a84133bd65 9 #include "SDFileSystem.h"
dangulo7 1:d8cc5013651e 10 #include "uLCD_4DGL.h"
jstephens78 0:da114b98e013 11
jstephens78 20:73e4f12277bd 12
jstephens78 20:73e4f12277bd 13
jstephens78 20:73e4f12277bd 14 ///////////////////////////
jstephens78 20:73e4f12277bd 15 // GLOBALS.H DEFINITIONS //
jstephens78 20:73e4f12277bd 16 ///////////////////////////
jstephens78 20:73e4f12277bd 17 // The following variables are declared as extern in "globals.h", and we define
jstephens78 20:73e4f12277bd 18 // them here:
jstephens78 20:73e4f12277bd 19 volatile bool game1 = false;
jstephens78 20:73e4f12277bd 20 volatile bool game2 = false;
jsanchez307 26:163d7ca8c42d 21 volatile int menu_flag = 0;
jstephens78 20:73e4f12277bd 22
jstephens78 19:6d9bee043ede 23 Serial pc(USBTX, USBRX);
jstephens78 20:73e4f12277bd 24 Mutex pc_mutex;
jstephens78 20:73e4f12277bd 25
jstephens78 19:6d9bee043ede 26 //uLCD_4DGL uLCD(p28, p27, p29);
jsanchez307 23:214c0c828d98 27 uLCD_4DGL uLCD(p13,p14,p30);
jstephens78 17:3517251daf96 28 Mutex uLCD_mutex;
jstephens78 17:3517251daf96 29
jsanchez307 23:214c0c828d98 30 BluefruitController blue(p28,p27);
jsanchez307 23:214c0c828d98 31 //BusIn navSwitch(p15, p16, p17, p19, p20);
jsanchez307 23:214c0c828d98 32 Nav_Switch myNav(p20, p16, p17, p15, p19); // pins(up, down, left, right, fire)
jstephens78 16:6cf744b2623a 33
jstephens78 20:73e4f12277bd 34 SDFileSystem sd(p5, p6, p7, p8, "sd");
jstephens78 16:6cf744b2623a 35 PwmOut Rgb(p23);
jstephens78 16:6cf744b2623a 36 PwmOut rGb(p24);
jstephens78 16:6cf744b2623a 37 PwmOut rgB(p25);
jaybalar 27:a09981ebd532 38 Speaker DACout(p18);
jsanchez307 26:163d7ca8c42d 39 //wave_player waver(&DACout);
jstephens78 12:5d913b57da7c 40
jstephens78 0:da114b98e013 41
jstephens78 20:73e4f12277bd 42 ////////////////////////////////
jstephens78 20:73e4f12277bd 43 // MAIN.CPP LOCAL DEFINITIONS //
jstephens78 20:73e4f12277bd 44 ////////////////////////////////
jstephens78 20:73e4f12277bd 45 // The following variables are *not* from "globals.h" and are not meant for
jstephens78 20:73e4f12277bd 46 // reference outside of main.cpp
jstephens78 21:df9e8f45e14c 47 DigitalOut led1(LED1);
jstephens78 21:df9e8f45e14c 48 DigitalOut led2(LED2);
jstephens78 21:df9e8f45e14c 49 DigitalOut led3(LED3);
jstephens78 21:df9e8f45e14c 50 DigitalOut led4(LED4);
jstephens78 20:73e4f12277bd 51
jstephens78 20:73e4f12277bd 52
jstephens78 20:73e4f12277bd 53
jstephens78 20:73e4f12277bd 54 //////////////////////
jstephens78 20:73e4f12277bd 55 // MAIN.CPP THREADS //
jstephens78 20:73e4f12277bd 56 //////////////////////
jaybalar 27:a09981ebd532 57
jstephens78 20:73e4f12277bd 58 void audioThread()
jstephens78 11:e00a208bd85a 59 {
jstephens78 21:df9e8f45e14c 60 while (true) {
jaybalar 27:a09981ebd532 61 //FILE *wave_file;
jstephens78 21:df9e8f45e14c 62 while (game1 == false && game2 == false) {
jaybalar 27:a09981ebd532 63 DACout.PlayNote(369.99, 0.4, 1);
jaybalar 27:a09981ebd532 64 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 65 DACout.PlayNote(466.16, 0.2, 1);
jaybalar 27:a09981ebd532 66 DACout.PlayNote(554.37, 0.2, 1);
jaybalar 27:a09981ebd532 67 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 68 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 69 DACout.PlayNote(466.16, 0.4, 1);
jaybalar 27:a09981ebd532 70 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 71 DACout.PlayNote(369.99, 0.4, 1);
jaybalar 27:a09981ebd532 72 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 73 DACout.PlayNote(293.66, 0.2, 1);
jaybalar 27:a09981ebd532 74 DACout.PlayNote(293.66, 0.2, 1);
jaybalar 27:a09981ebd532 75 DACout.PlayNote(293.66, 0.2, 1);
jaybalar 27:a09981ebd532 76 DACout.PlayNote(0, 0.8, 1);
jaybalar 27:a09981ebd532 77 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 78 DACout.PlayNote(277.18, 0.4, 1);
jaybalar 27:a09981ebd532 79 DACout.PlayNote(293.66, 0.2, 1);
jaybalar 27:a09981ebd532 80 DACout.PlayNote(369.99, 0.2, 1);
jaybalar 27:a09981ebd532 81 DACout.PlayNote(466.16, 0.2, 1);
jaybalar 27:a09981ebd532 82 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 83 DACout.PlayNote(554.37, 0.2, 1);
jaybalar 27:a09981ebd532 84 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 85 DACout.PlayNote(466.16, 0.4, 1);
jaybalar 27:a09981ebd532 86 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 87 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 88 DACout.PlayNote(369.99, 0.4, 1);
jaybalar 27:a09981ebd532 89 DACout.PlayNote(659.25, 0.4, 1);
jaybalar 27:a09981ebd532 90 DACout.PlayNote(622.25, 0.4, 1);
jaybalar 27:a09981ebd532 91 DACout.PlayNote(587.33, 0.4, 1);
jaybalar 27:a09981ebd532 92 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 93 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 94
jaybalar 27:a09981ebd532 95
jaybalar 27:a09981ebd532 96
jaybalar 27:a09981ebd532 97 DACout.PlayNote(392.00, 0.4, 1);
jaybalar 27:a09981ebd532 98 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 99 DACout.PlayNote(554.37, 0.2, 1);
jaybalar 27:a09981ebd532 100 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 101 DACout.PlayNote(369.99, 0.2, 1);
jaybalar 27:a09981ebd532 102 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 103 DACout.PlayNote(554.37, 0.4, 1);
jaybalar 27:a09981ebd532 104 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 105 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 106 DACout.PlayNote(329.00, 0.4, 1);
jaybalar 27:a09981ebd532 107 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 108 DACout.PlayNote(523.25, 0.4, 1);
jaybalar 27:a09981ebd532 109 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 110 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 111 DACout.PlayNote(329.00, 0.4, 1);
jaybalar 27:a09981ebd532 112 DACout.PlayNote(369.99, 0.4, 1);
jaybalar 27:a09981ebd532 113 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 114 DACout.PlayNote(329.63, 0.4, 1);
jaybalar 27:a09981ebd532 115 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 116 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 117 DACout.PlayNote(277.18, 0.2, 1);
jaybalar 27:a09981ebd532 118 DACout.PlayNote(277.18, 0.2, 1);
jaybalar 27:a09981ebd532 119 DACout.PlayNote(277.18, 0.2, 1);
jaybalar 27:a09981ebd532 120 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 121 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 122 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 123 DACout.PlayNote(277.18, 0.2, 1);
jaybalar 27:a09981ebd532 124 DACout.PlayNote(277.18, 0.2, 1);
jaybalar 27:a09981ebd532 125 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 126 DACout.PlayNote(277.18, 0.4, 1);
jaybalar 27:a09981ebd532 127 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 128 DACout.PlayNote(0, 0.4, 1);
jaybalar 27:a09981ebd532 129 DACout.PlayNote(311.13, 0.4, 1);
jaybalar 27:a09981ebd532 130 if(game1 == true || game2 == true) break;
jaybalar 27:a09981ebd532 131 DACout.PlayNote(293.66, 0.4, 1);
jaybalar 27:a09981ebd532 132 //DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 133
jaybalar 27:a09981ebd532 134 /*led2 = true;
jstephens78 21:df9e8f45e14c 135 wave_file=fopen("/sd/MiiMenu.wav","r");
jaybalar 27:a09981ebd532 136 PRINTF("Opening");
jstephens78 21:df9e8f45e14c 137 waver.play(wave_file);
jstephens78 21:df9e8f45e14c 138 fclose(wave_file);
jaybalar 27:a09981ebd532 139 led2 = false;*/
jstephens78 21:df9e8f45e14c 140 }
jstephens78 21:df9e8f45e14c 141 while (game1 == true && game2 == false) {
jaybalar 27:a09981ebd532 142 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 143 DACout.PlayNote(493.88, 0.3, 1);
jaybalar 27:a09981ebd532 144 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 145 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 146 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 147 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 148 DACout.PlayNote(493.88, 0.3, 1);
jaybalar 27:a09981ebd532 149 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 150 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 151 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 152 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 153 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 154 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 155 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 156 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 157 DACout.PlayNote(493.88, 0.3, 1);
jaybalar 27:a09981ebd532 158 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 159 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 160 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 161 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 162 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 163 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 164 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 165 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 166
jaybalar 27:a09981ebd532 167 DACout.PlayNote(583.33, 0.3, 1);
jaybalar 27:a09981ebd532 168 DACout.PlayNote(698.46, 0.3, 1);
jaybalar 27:a09981ebd532 169 DACout.PlayNote(880.00, 0.3, 1);
jaybalar 27:a09981ebd532 170 DACout.PlayNote(783.99, 0.3, 1);
jaybalar 27:a09981ebd532 171 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 172 DACout.PlayNote(698.46, 0.3, 1);
jaybalar 27:a09981ebd532 173 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 174 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 175 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 176 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 177 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 178 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 179 DACout.PlayNote(493.88, 0.3, 1);
jaybalar 27:a09981ebd532 180 DACout.PlayNote(493.88, 0.3, 1);
jaybalar 27:a09981ebd532 181 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 182 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 183 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 184 DACout.PlayNote(659.25, 0.3, 1);
jaybalar 27:a09981ebd532 185 DACout.PlayNote(523.35, 0.3, 1);
jaybalar 27:a09981ebd532 186 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 187 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 188 DACout.PlayNote(440.00, 0.3, 1);
jaybalar 27:a09981ebd532 189 /* led2 = true;
jstephens78 21:df9e8f45e14c 190 wave_file=fopen("/sd/tetris.wav","r");
jstephens78 21:df9e8f45e14c 191 waver.play(wave_file);
jstephens78 21:df9e8f45e14c 192 fclose(wave_file);
jaybalar 27:a09981ebd532 193 led2 = false;*/
jstephens78 21:df9e8f45e14c 194 }
jstephens78 21:df9e8f45e14c 195 while (game2 == true && game1 == false) {
jaybalar 27:a09981ebd532 196 DACout.PlayNote(329.63, 0.6, 1);
jaybalar 27:a09981ebd532 197 DACout.PlayNote(349.23, 0.6, 1);
jaybalar 27:a09981ebd532 198 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 199 DACout.PlayNote(523.25, 0.15, 1);
jaybalar 27:a09981ebd532 200 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 201 DACout.PlayNote(493.88, 0.15, 1);
jaybalar 27:a09981ebd532 202 DACout.PlayNote(523.25, 0.15, 1);
jaybalar 27:a09981ebd532 203 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 204 DACout.PlayNote(329.63, 0.15, 1);
jaybalar 27:a09981ebd532 205 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 206 DACout.PlayNote(261.63, 0.15, 1);
jaybalar 27:a09981ebd532 207 DACout.PlayNote(293.66, 0.15, 1);
jaybalar 27:a09981ebd532 208 DACout.PlayNote(329.33, 0.15, 1);
jaybalar 27:a09981ebd532 209 DACout.PlayNote(293.66, 0.6, 1);
jaybalar 27:a09981ebd532 210 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 211 DACout.PlayNote(293.66, 1.2, 1);
jaybalar 27:a09981ebd532 212 DACout.PlayNote(329.63, 0.6, 1);
jaybalar 27:a09981ebd532 213 DACout.PlayNote(349.23, 0.3, 1);
jaybalar 27:a09981ebd532 214 DACout.PlayNote(329.63, 0.15, 1);
jaybalar 27:a09981ebd532 215 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 216 DACout.PlayNote(349.23, 0.15, 1);
jaybalar 27:a09981ebd532 217
jaybalar 27:a09981ebd532 218
jaybalar 27:a09981ebd532 219 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 220 DACout.PlayNote(523.25, 0.15, 1);
jaybalar 27:a09981ebd532 221 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 222 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 223 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 224 DACout.PlayNote(587.33, 0.1, 1);
jaybalar 27:a09981ebd532 225 DACout.PlayNote(659.25, 0.1, 1);
jaybalar 27:a09981ebd532 226 DACout.PlayNote(698.46, 0.15, 1);
jaybalar 27:a09981ebd532 227 DACout.PlayNote(659.25, 0.15, 1);
jaybalar 27:a09981ebd532 228 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 229 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 230 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 231 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 232 DACout.PlayNote(440.00, 0.15, 1);
jaybalar 27:a09981ebd532 233 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 234 DACout.PlayNote(440.00, 0.15, 1);
jaybalar 27:a09981ebd532 235 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 236 DACout.PlayNote(587.33, 0.1, 1);
jaybalar 27:a09981ebd532 237 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 238 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 239 DACout.PlayNote(587.33, 0.1, 1);
jaybalar 27:a09981ebd532 240 DACout.PlayNote(659.25, 0.1, 1);
jaybalar 27:a09981ebd532 241 DACout.PlayNote(698.46, 0.15, 1);
jaybalar 27:a09981ebd532 242 DACout.PlayNote(659.25, 0.15, 1);
jaybalar 27:a09981ebd532 243 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 244 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 245 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 246 DACout.PlayNote(392.00, 0.3, 1);
jaybalar 27:a09981ebd532 247 DACout.PlayNote(392.00, 0.6, 1);
jaybalar 27:a09981ebd532 248 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 249 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 250 DACout.PlayNote(587.33, 0.1, 1);
jaybalar 27:a09981ebd532 251 DACout.PlayNote(659.25, 0.1, 1);
jaybalar 27:a09981ebd532 252 DACout.PlayNote(698.46, 0.15, 1);
jaybalar 27:a09981ebd532 253 DACout.PlayNote(659.25, 0.15, 1);
jaybalar 27:a09981ebd532 254 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 255 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 256 DACout.PlayNote(523.25, 0.3, 1);
jaybalar 27:a09981ebd532 257 DACout.PlayNote(783.99, 0.3, 1);
jaybalar 27:a09981ebd532 258 DACout.PlayNote(783.99, 0.6, 1);
jaybalar 27:a09981ebd532 259 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 260 DACout.PlayNote(783.99, 0.15, 1);
jaybalar 27:a09981ebd532 261 DACout.PlayNote(783.99, 0.1, 1);
jaybalar 27:a09981ebd532 262 DACout.PlayNote(880.00, 0.1, 1);
jaybalar 27:a09981ebd532 263 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 264 DACout.PlayNote(932.33, 0.15, 1);
jaybalar 27:a09981ebd532 265 DACout.PlayNote(880.00, 0.15, 1);
jaybalar 27:a09981ebd532 266 DACout.PlayNote(783.99, 0.15, 1);
jaybalar 27:a09981ebd532 267 DACout.PlayNote(698.46, 0.6, 1);
jaybalar 27:a09981ebd532 268 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 269 DACout.PlayNote(830.61, 0.15, 1);
jaybalar 27:a09981ebd532 270 DACout.PlayNote(783.99, 0.15, 1);
jaybalar 27:a09981ebd532 271 DACout.PlayNote(698.46, 0.15, 1);
jaybalar 27:a09981ebd532 272 DACout.PlayNote(622.25, 0.3, 1);
jaybalar 27:a09981ebd532 273 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 274 DACout.PlayNote(739.99, 0.15, 1);
jaybalar 27:a09981ebd532 275 DACout.PlayNote(698.46, 0.1, 1);
jaybalar 27:a09981ebd532 276 DACout.PlayNote(698.46, 0.15, 1);
jaybalar 27:a09981ebd532 277 DACout.PlayNote(622.25, 0.15, 1);
jaybalar 27:a09981ebd532 278 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 279 DACout.PlayNote(554.37, 0.15, 1);
jaybalar 27:a09981ebd532 280 DACout.PlayNote(415.30, 0.15, 1);
jaybalar 27:a09981ebd532 281 DACout.PlayNote(349.23, 0.15, 1);
jaybalar 27:a09981ebd532 282 DACout.PlayNote(277.18, 0.15, 1);
jaybalar 27:a09981ebd532 283 DACout.PlayNote(311.13, 0.3, 1);
jaybalar 27:a09981ebd532 284 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 285 DACout.PlayNote(554.37, 0.3, 1);
jaybalar 27:a09981ebd532 286 DACout.PlayNote(587.33, 0.6, 1);
jaybalar 27:a09981ebd532 287 DACout.PlayNote(587.33, 0.6, 1);
jaybalar 27:a09981ebd532 288 DACout.PlayNote(587.33, 0.15, 1);
jaybalar 27:a09981ebd532 289 DACout.PlayNote(392.00, 0.15, 1);
jaybalar 27:a09981ebd532 290 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 291 DACout.PlayNote(587.33, 0.3, 1);
jaybalar 27:a09981ebd532 292 DACout.PlayNote(783.99, 0.3, 1);
jaybalar 27:a09981ebd532 293 DACout.PlayNote(783.99, 0.6, 1);
jaybalar 27:a09981ebd532 294 DACout.PlayNote(783.99, 1.2, 1);
jaybalar 27:a09981ebd532 295 if(game1 != true && game2 == false) break;
jaybalar 27:a09981ebd532 296 /*led2 = true;
jstephens78 21:df9e8f45e14c 297 wave_file=fopen("/sd/WiiPlayAirHockey.wav","r");
jstephens78 21:df9e8f45e14c 298 waver.play(wave_file);
jstephens78 21:df9e8f45e14c 299 fclose(wave_file);
jaybalar 27:a09981ebd532 300 led2 = false;*/
jstephens78 21:df9e8f45e14c 301 }
dangulo7 1:d8cc5013651e 302 }
jaybalar 27:a09981ebd532 303 }
dangulo7 1:d8cc5013651e 304
jstephens78 20:73e4f12277bd 305 void ledThread()
jstephens78 11:e00a208bd85a 306 {
jstephens78 11:e00a208bd85a 307 float x = 0.0;
dangulo7 1:d8cc5013651e 308 while(1) {
dangulo7 1:d8cc5013651e 309 //get a new random number for PWM
dangulo7 1:d8cc5013651e 310 x = rand() / float(RAND_MAX);
dangulo7 1:d8cc5013651e 311 //add some exponential brightness scaling
dangulo7 1:d8cc5013651e 312 //for more of a fast flash effect
dangulo7 1:d8cc5013651e 313 x = x*x*x;
dangulo7 1:d8cc5013651e 314 Rgb = x;
jstephens78 11:e00a208bd85a 315 rGb = x;
jstephens78 11:e00a208bd85a 316 rgB = x;
dangulo7 1:d8cc5013651e 317 //fast update rate for welding flashes
dangulo7 1:d8cc5013651e 318 Thread::wait(20);
dangulo7 1:d8cc5013651e 319 //add a random pause between welds
jstephens78 11:e00a208bd85a 320 if (rand() / float(RAND_MAX) > 0.95) {
dangulo7 1:d8cc5013651e 321 Rgb = 0;
dangulo7 1:d8cc5013651e 322 rGb = 0;
dangulo7 1:d8cc5013651e 323 rgB = 0;
dangulo7 1:d8cc5013651e 324 Thread::wait(4000.0 * rand() / float(RAND_MAX));
dangulo7 1:d8cc5013651e 325 }
jstephens78 11:e00a208bd85a 326 }
dangulo7 1:d8cc5013651e 327 }
jstephens78 16:6cf744b2623a 328
jstephens78 11:e00a208bd85a 329 int main()
jstephens78 11:e00a208bd85a 330 {
jstephens78 20:73e4f12277bd 331 // Launch four threads
jstephens78 20:73e4f12277bd 332 Thread thread1(tetrisGame, osPriorityHigh);
jstephens78 20:73e4f12277bd 333 Thread thread2(hockeyGame, osPriorityHigh);
jaybalar 27:a09981ebd532 334 Thread thread3(audioThread, osPriorityLow);
jstephens78 20:73e4f12277bd 335 Thread thread4(ledThread, osPriorityLow);
jsanchez307 26:163d7ca8c42d 336
jstephens78 20:73e4f12277bd 337 // The main thread goes on to blink LEDs
jaybalar 27:a09981ebd532 338 //Speaker mySpeaker(p18);
jaybalar 27:a09981ebd532 339 // loops forever playing two notes on speaker using analog samples
jaybalar 27:a09981ebd532 340 //PRINTF("test");
jaybalar 27:a09981ebd532 341 // while(1) {
jaybalar 27:a09981ebd532 342 // //mySpeaker.PlayNote(969.0, 0.5, 1.0);
jaybalar 27:a09981ebd532 343 //// mySpeaker.PlayNote(800.0, 0.5, 1.0);
jaybalar 27:a09981ebd532 344 // //PRINTF("loop");
jaybalar 27:a09981ebd532 345 // }
jstephens78 12:5d913b57da7c 346 while (true) {
jstephens78 21:df9e8f45e14c 347 led1 = 1;
jstephens78 12:5d913b57da7c 348 Thread::wait(500);
jstephens78 21:df9e8f45e14c 349 led1 = 0;
jstephens78 12:5d913b57da7c 350 Thread::wait(500);
jsanchez307 26:163d7ca8c42d 351 if(!game1 && !game2 && menu_flag==0){
jsanchez307 26:163d7ca8c42d 352 uLCD.cls();
dangulo7 24:3b29ae4d6171 353 uLCD.color(WHITE);
dangulo7 25:c3eb6c1a2dfb 354 uLCD.text_height(2);
dangulo7 25:c3eb6c1a2dfb 355 uLCD.text_width(2);
dangulo7 25:c3eb6c1a2dfb 356 uLCD.locate(2,0);
dangulo7 25:c3eb6c1a2dfb 357 uLCD.printf("MENU:\n");
dangulo7 24:3b29ae4d6171 358 uLCD.printf("UP:\n");
dangulo7 24:3b29ae4d6171 359 uLCD.printf("Tetris \n");
dangulo7 24:3b29ae4d6171 360 uLCD.printf("\n");
dangulo7 24:3b29ae4d6171 361 uLCD.printf("DOWN:\n");
dangulo7 24:3b29ae4d6171 362 uLCD.printf("Air\n");
dangulo7 24:3b29ae4d6171 363 uLCD.printf("Hockey");
jsanchez307 26:163d7ca8c42d 364 menu_flag=1;
dangulo7 24:3b29ae4d6171 365 }
jstephens78 20:73e4f12277bd 366
jsanchez307 26:163d7ca8c42d 367 //DACout.PlayNote(50, 1.0/2.5, 0.08);
jsanchez307 26:163d7ca8c42d 368
jstephens78 20:73e4f12277bd 369 PRINTF("[MAIN] Thread stacks: %lu %lu %lu %lu\r\n",
jstephens78 20:73e4f12277bd 370 thread1.used_stack(),
jstephens78 20:73e4f12277bd 371 thread2.used_stack(),
jaybalar 27:a09981ebd532 372 thread3.used_stack(),
jstephens78 20:73e4f12277bd 373 thread4.used_stack());
jstephens78 20:73e4f12277bd 374
jstephens78 20:73e4f12277bd 375 // Launch into the air hockey game
jsanchez307 26:163d7ca8c42d 376 if (game1 != true && game2 != true && myNav.up()){
dangulo7 24:3b29ae4d6171 377 uLCD.cls();
dangulo7 24:3b29ae4d6171 378 game1 = true;
dangulo7 24:3b29ae4d6171 379 }
jsanchez307 26:163d7ca8c42d 380 if (game2 != true && game1 != true && myNav.down()){
dangulo7 24:3b29ae4d6171 381 uLCD.cls();
dangulo7 24:3b29ae4d6171 382 game2 = true;
dangulo7 24:3b29ae4d6171 383 }
jstephens78 0:da114b98e013 384 }
jstephens78 0:da114b98e013 385 }