Linking but does not give binary - Error L6320W

Dependencies:   mbed wave_player SDFileSystem PinDetect

Files at this revision

API Documentation at this revision

Comitter:
hcharan
Date:
Sun Aug 11 09:41:33 2019 +0000
Child:
1:14ae2ef7d572
Commit message:
Linking but not giving binary, error L6320W

Changed in this revision

PinDetect.lib Show annotated file Show diff for this revision Revisions of this file
SDFileSystem.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
wave_player.lib Show annotated file Show diff for this revision Revisions of this file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/PinDetect.lib	Sun Aug 11 09:41:33 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/AjK/code/PinDetect/#cb3afc45028b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SDFileSystem.lib	Sun Aug 11 09:41:33 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/neilt6/code/SDFileSystem/#4be398482e7b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sun Aug 11 09:41:33 2019 +0000
@@ -0,0 +1,218 @@
+#include "mbed.h"
+#include "SDFileSystem.h"
+#include "wave_player.h"
+#include "PinDetect.h"
+#include <vector>
+#include <string>
+
+#define UP PC_13
+#define DOWN PB_1
+#define BACK PB_5
+#define MENU PB_2
+#define SELECT PB_9
+#define VOLUP PB_7
+#define VOLDOWN PB_6
+
+#define LONG_PRESS_TIME 80 //Value * 20ms = debounce time
+#define SHORT_PRESS_TIME 5 //Value * 20ms = debounce time
+
+using namespace std;
+
+SDFileSystem sd(PB_15, PB_14, PB_13, PB_12, "TEST");
+
+PinDetect up(UP, PullUp);
+PinDetect down(DOWN, PullUp);
+PinDetect back(BACK, PullUp);
+PinDetect menu(MENU, PullUp);
+PinDetect select(SELECT, PullUp);
+PinDetect volup(VOLUP, PullUp);
+PinDetect voldown(VOLDOWN, PullUp);
+bool buttonStatus = 0;
+
+AnalogOut DACout(PA_4);
+wave_player waver(&DACout);
+int pos = 0; // index of the song
+int vol = 0; // volume controller
+
+bool playing = false; //variable for pause/play since we only have 1 pb for that
+vector<string> filenames; //filenames are stored in a vector string
+
+void read_file_names(char *dir) // function that reads in file names from sd cards
+{
+    DIR *dp;
+    struct dirent *dirp;
+    dp = opendir(dir);
+    //read all directory and file names in current directory into filename vector
+    while((dirp = readdir(dp)) != NULL) {
+        filenames.push_back(string(dirp->d_name));
+    }
+}
+
+void  upPressedCallback(void){
+    //printf("\nUP Pressed\n");
+    
+    int l = filenames.size();
+    if (pos > 0) {
+        pos--;
+    } else if (pos == 0 ) {
+        pos = l-1;
+    }
+    
+}
+void  upHeldCallback(void){
+    printf("\nUP Held\n");
+}
+
+void  downPressedCallback(void){
+    //printf("\ndown Pressed\n");
+    // it checks for the total number of songs in the sd card..then increments the index until it reaches the last one, then resets to 0
+    
+    int l = filenames.size();
+    if (pos < (l-1)) {
+        pos++;
+    } else if (pos == (l-1)) {
+        pos = 0;
+    }
+    
+}
+void  downHeldCallback(void){
+    printf("\ndown Held\n");
+}
+
+void  backPressedCallback(void){
+    printf("\nback Pressed\n");
+}
+void  backHeldCallback(void){
+    printf("\nback Held\n");
+}
+
+void  menuPressedCallback(void){
+    //printf("\nmenu Pressed\n");
+
+    //this interrupt handler changes the play to pause mode or vice versa
+    //this is done using the boolean playing
+    
+    if (playing == false) {
+        playing = true; 
+    } else if (playing == true) {
+        playing = false; 
+    }
+    
+}
+void  menuHeldCallback(void){
+    //printf("\nmenu Held\n");
+}
+
+void  volupPressedCallback(void){
+    printf("\nvolup Pressed\n");
+}
+void  volupHeldCallback(void){
+    printf("\nvolup Held\n");
+}
+
+void  voldownPressedCallback(void){
+    //printf("\nvoldown Pressed\n");
+    // this pb changes the volume by lowering the volume until it reaches 0. then it resets to the max volume
+    // the volume range has been divided into 16 possible ranges. and hence, it toggles through those 16 values
+    // this only changes the variable vol, which is then used in the wave player file to actually adjust the volume
+    vol = (vol+1) % 16;
+}
+void  voldownHeldCallback(void){
+    printf("\nvoldown Held\n");
+}
+
+bool buttons_init(void) {
+    up.attach_deasserted( &upPressedCallback );
+    //up.attach_deasserted( &upReleasedCallback );
+    up.attach_asserted_held( &upHeldCallback );
+    up.setSamplesTillAssert( SHORT_PRESS_TIME );
+    up.setSamplesTillHeld( LONG_PRESS_TIME );
+    up.setAssertValue( 0 );
+    up.setSampleFrequency();
+    //up.fall(callback(this, &upCallback));
+    
+    down.attach_deasserted( &downPressedCallback );
+    //down.attach_deasserted( &downReleasedCallback );
+    down.attach_asserted_held( &downHeldCallback );
+    down.setSamplesTillAssert( SHORT_PRESS_TIME );
+    down.setSamplesTillHeld( LONG_PRESS_TIME );
+    down.setAssertValue( 0 );
+    down.setSampleFrequency();
+    
+    back.attach_deasserted( &backPressedCallback );
+    //back.attach_deasserted( &backReleasedCallback );
+    back.attach_asserted_held( &backHeldCallback );
+    back.setSamplesTillAssert( SHORT_PRESS_TIME );
+    back.setSamplesTillHeld( LONG_PRESS_TIME );
+    back.setAssertValue( 0 );
+    back.setSampleFrequency();
+    
+    menu.attach_deasserted( &menuPressedCallback );
+    //menu.attach_deasserted( &menuReleasedCallback );
+    menu.attach_asserted_held( &menuHeldCallback );
+    menu.setSamplesTillAssert( SHORT_PRESS_TIME );
+    menu.setSamplesTillHeld( LONG_PRESS_TIME );
+    menu.setAssertValue( 0 );
+    menu.setSampleFrequency();
+
+    volup.attach_deasserted( &volupPressedCallback );
+    //volup.attach_deasserted( &volupReleasedCallback );
+    volup.attach_asserted_held( &volupHeldCallback );
+    volup.setSamplesTillAssert( SHORT_PRESS_TIME );
+    volup.setSamplesTillHeld( LONG_PRESS_TIME );
+    volup.setAssertValue( 0 );
+    volup.setSampleFrequency();
+    
+    voldown.attach_deasserted( &voldownPressedCallback );
+    //voldown.attach_deasserted( &voldownReleasedCallback );
+    voldown.attach_asserted_held( &voldownHeldCallback );
+    voldown.setSamplesTillAssert( SHORT_PRESS_TIME );
+    voldown.setSamplesTillHeld( LONG_PRESS_TIME );
+    voldown.setAssertValue( 0 );
+    voldown.setSampleFrequency();
+    
+    /*
+    down.fall(callback(&downCallback));
+    back.fall(callback(&backCallback));
+    menu.fall(callback(&menuCallback));
+    select.fall(callback(&selectCallback));
+    volup.fall(callback(&volupCallback));
+    voldown.fall(callback(&voldownCallback));
+    */
+    
+    printf("\nButtons Initialized\n");
+    return 1;
+}
+
+int main()
+{
+    printf("\n\n\nHello, wave world =======!\n");
+    buttonStatus = buttons_init();
+    read_file_names("/TEST/Music");
+    
+    /*
+    //FILE *wave_file;
+    //wave_file=fopen("/TEST/queen.wav","r");
+    //wave_player waver(&DACout, wave_file);
+    //waver.play();
+    
+    wave_file=fopen("/TEST/queen.wav","r");
+    waver.play();
+    fclose(wave_file);
+    */
+    
+    while(1) {
+        //while pb3 is low, then we can start playing the song
+        while(playing == true) { //we have 2 while loops..one while loop makes sure the music player is always on, the other one is for the song
+            string songname = filenames[pos];
+            string a = "/TEST/";
+            string fname = a + songname; //retrieves the file name
+            FILE *wave_file; 
+            wave_file = fopen(fname.c_str(),"r"); //opens the music file
+            waver.play(wave_file); //plays the music file
+            fclose(wave_file);
+        }
+    }
+ 
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Sun Aug 11 09:41:33 2019 +0000
@@ -0,0 +1,1 @@
+https://os.mbed.com/users/mbed_official/code/mbed/builds/65be27845400
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wave_player.lib	Sun Aug 11 09:41:33 2019 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/sarthakjaiswal/code/wave_player/#bd0772f13bc8