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: FFT FrequencyFinder Motor NewTextLCD PinDetect mbed strings
Revision 7:057bcd99a3f8, committed 2012-04-20
- Comitter:
- melangeaddict
- Date:
- Fri Apr 20 17:28:27 2012 +0000
- Parent:
- 6:46fb12f6ace1
- Child:
- 8:651fbf5ae98a
- Commit message:
- kinda works; lcd looks good
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
| strings/strings.h | Show annotated file Show diff for this revision Revisions of this file |
--- a/main.cpp Thu Apr 19 20:31:42 2012 +0000
+++ b/main.cpp Fri Apr 20 17:28:27 2012 +0000
@@ -18,9 +18,9 @@
//DigitalOut led2(LED2);
TextLCD lcd(p5,p6,p7,p8,p9,p10);//Our method of communication with LCD screen (rs e d4 d5 d6 d7)
-Motor motor(p24,p20,p21);//Setup for the motor (enable, direction, step)
-FrequencyFinder guitar(p18);//Interface to get data from guitar (input pin)
-
+Motor motor(p24,p19,p21);//Setup for the motor (enable, direction, step)
+FrequencyFinder guitar(p20);//Interface to get data from guitar (input pin)
+AnalogOut bias(p18);//1.6v DC offset
DigitalOut ledBlue(p25);
DigitalOut ledGreen(p23);
@@ -32,7 +32,7 @@
bool start_tuning;//Bool to tell whether to start the tuning process or not
bool wind_up;//Bool for winding mode - turn motor up
bool wind_down;//Bool for winding mode - turn motor down
-bool up, down;//To move the motor up or down
+short up, down;//To move the motor up or down
//vector<strings> strings_array;//Holds strings objects - basically the frequency data for each string
strings strings_array[6];
@@ -71,7 +71,7 @@
lcd.cls();//Clear the LCD
lcd.printf("Perfect\n Pitch");//Modify to whatever we want to name this thing
LED_initialize();
- wait(.5);
+
device_init();//Setup buttons and set global variables
@@ -80,6 +80,7 @@
float new_freq=0;
float desired_freq=0;
strings *temp=&strings_array[0];
+ wait(.5);
output_menu();
@@ -147,6 +148,10 @@
}
next_state=4;
} else {
+ output_menu();
+ wind_up=false;
+ wind_down=false;
+ setup_buttons();
next_state=0;
}
break;
@@ -167,9 +172,16 @@
if (start_tuning) {
lcd.cls();
- lcd.printf("Detected %f ",new_freq);
+
+ lcd.locate(9,0);
+ lcd.printf("%f",new_freq);
+ lcd.locate(9,1);
+ lcd.printf("%f",desired_freq);
+
lcd.locate(0,1);
- lcd.printf("Desired %f",desired_freq);
+ lcd.printf("Desired");
+ lcd.locate(0,0);
+ lcd.printf("Detected");
}
}//end while
@@ -281,6 +293,9 @@
//***************************************************
void stop() {
start_tuning=false;
+
+ output_menu();
+ setup_buttons();
}
//***************************************************
void do_nothing() {
@@ -322,9 +337,11 @@
selected_string=5;
current_mode=tuning_mode;
start_tuning=false;
- up=true;
- down=false;
- wind_up=true;
+ up=1;
+ down=0;
+ wind_up=false;
+ wind_down=false;
+ bias=.5;
button_init();
@@ -373,8 +390,8 @@
}
if (freq_up<freq_down) {
- down=true;
- up=false;
+ down=1;
+ up=0;
}
lcd.cls();
@@ -437,25 +454,25 @@
//ledRed=2;
//ledGreen=3;
//value must be an int: 0 or 1
- if(value!=0)
+ if (value!=0)
- switch (led) {
- case(1):
- ledBlue=value;
- break;
+ switch (led) {
+ case(1):
+ ledBlue=value;
+ break;
- case(2):
- ledRed=value;
- break;
+ case(2):
+ ledRed=value;
+ break;
- case(3):
- ledGreen=value;
- break;
+ case(3):
+ ledGreen=value;
+ break;
- default:
- break;
+ default:
+ break;
- }
+ }
return;
--- a/strings/strings.h Thu Apr 19 20:31:42 2012 +0000
+++ b/strings/strings.h Fri Apr 20 17:28:27 2012 +0000
@@ -20,4 +20,5 @@
float frequencies[9];
char *notes [9];
int index;
+ float threshold[6];
};