Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed wave_player mbed-rtos 4180Final SDFileSystem
Diff: main.cpp
- Revision:
- 5:1e8b48d6682b
- Parent:
- 4:8331c1239f6a
- Child:
- 6:bc04f702c3cc
- Child:
- 7:65216abe57c3
diff -r 8331c1239f6a -r 1e8b48d6682b main.cpp
--- a/main.cpp Mon Apr 27 19:30:53 2020 +0000
+++ b/main.cpp Mon Apr 27 20:35:13 2020 +0000
@@ -15,14 +15,14 @@
Nav_Switch myNav(p9, p6, p7, p5, p8); //pin order on Sparkfun breakout
uLCD_4DGL uLCD(p28, p27, p30); // serial tx, serial rx, reset pin;
PwmOut myled(LED1);
-//SDFileSystem sd(p11, p12, p13, p10, "sd");
+SDFileSystem sd(p11, p12, p13, p10, "sd");
microphone mymic1(p15);
AnalogIn pot(p16);
AnalogOut DACout(p18);
DigitalOut led(LED2);
-//BusOut led_strip(p21, p22, p23, p24, p25, p26);
+PwmOut myled3(LED3);
-Thread thread1;
+Thread thread1, thread2;
// Stuff for sound
unsigned char *music = NULL;
@@ -44,6 +44,7 @@
int highScoresArr[10] = {100, 90, 83, 73, 64, 54, 44, 34, 24, 14};
int s = 0;
int timer = 0;
+volatile int micScore = 0;
int main();
void play();
@@ -70,12 +71,20 @@
while (1) {
if (timer == 99) {
s = (int) (pot * 2.0);
- myled = pot;
}
// Thread::wait(100);
}
}
+// thread 2
+void mic_thread() {
+ while (1) {
+ myled = pot;
+ micScore = int(mymic1*1000.0);
+ Thread::wait(100);
+ }
+}
+
void clearVals() {
score1 = 0;
score2 = 0;
@@ -338,7 +347,8 @@
}
int getScore1() {
- return int(mymic1*1000.0);
+ myled3 = (int)(((float) micScore) / 1000.0);
+ return micScore; //int(mymic1*1000.0);
// gameType==0 for mic
@@ -349,26 +359,7 @@
// }
}
int getScore2() {
- return mymic1*1000.0;
-}
-
-void update_leds(float val){
- if(val <= 2.5){
- led_strip = 0b100000;
- } else if (2.5 > val && val < 5){
- led_strip = 0b110000;
- } else if (val > 5 && val < 7.5){
- led_strip = 0b111000;
- } else if (val > 7.5 && val < 10){
- led_strip = 0b111100;
- } else if (val > 10 && val < 12.5){
- led_strip = 0b111110;
- } else if (val > 12.5 && val < 15){
- led_strip = 0b111111;
- } else {
- led_strip = 0;
- }
- Thread::wait(0.2);
+ return 10; //int(mymic1*1000.0);
}
void play() {
@@ -410,7 +401,6 @@
if (timer % 25 == 0) {
score1 = getScore1(); //(int) (pot*100.0); //curTime+1000; // int(mymic1*1000.0);
score2 = getScore2(); //curTime+2000;
- update_leds(getScore2());
uLCD.color(BLUE);
uLCD.locate(0,1);
uLCD.printf("%4d", score1);
@@ -572,14 +562,14 @@
int main() {
// read in highScoresArr from SD card
- /*FILE *fp = fopen("/sd/finalProj/highscores.txt", "r");
+ FILE *fp = fopen("/sd/finalProj/highscores.txt", "r");
if(fp == NULL) {
uLCD.printf("Error Open \n");
}
for (int i=0; i<sizeof(highScoresArr)/4; i++) {
fscanf(fp, "%4d", &highScoresArr[i]);
}
- fclose(fp);*/
+ fclose(fp);
// create menu interface
uLCD.background_color(LBLUE);
uLCD.cls();
@@ -613,6 +603,7 @@
uLCD.filled_circle(xPos[i], yPos[i], 2, RED);
}
thread1.start(pot_thread);
+ thread2.start(mic_thread);
nextsample.attach(&playMenuMusic, 1.0/8000.0);
while (1) {
// play music