streo mp3 player see: http://mbed.org/users/okini3939/notebook/I2S_AUDIO

Dependencies:   FatFileSystemCpp I2SSlave TLV320 mbed

Fork of madplayer by Andreas Grün

Revision:
5:50015f4868e2
Parent:
4:30b2cf4a8ee2
--- a/main.cpp	Wed Dec 19 06:31:58 2012 +0000
+++ b/main.cpp	Fri Jul 26 15:02:49 2013 +0000
@@ -57,8 +57,8 @@
   unsigned short r;
  };
 
-volatile dacout_s dacbuf[1152];
-volatile dacout_s *dac_s, *dac_e;
+dacout_s dacbuf[1152];
+dacout_s * volatile dac_s, * volatile dac_e;
 
 void isr_audio () {
     int i;
@@ -70,6 +70,7 @@
             dac_s++;
             led3 = !led3;
         } else {
+            // under flow
             if (i) {
                 buf[i] = buf[i - 1];
             } else {
@@ -91,14 +92,13 @@
   dac_s = dac_e = dacbuf;
 
     audio.power(0x02); // mic off
-    audio.outputVolume(1, 1);
     audio.inputVolume(0.7, 0.7);
     audio.frequency(44100);
     audio.attach(&isr_audio);
     audio.start(TRANSMIT);
 
   while(1) {
-      fp = fopen("/sd/canyouparty.mp3","rb");
+      fp = fopen("/sd/filename.mp3","rb");
     
       if(!fp)  return(printf("file error\r\n"));
       fprintf(stderr,"decode start\r\n");
@@ -106,11 +106,10 @@
       mad_decoder_init(&decoder, NULL,input, 0, 0, output,error_fn, 0);
       t.reset();
       t.start();
-      led2 = 1;
       result = mad_decoder_run(&decoder, MAD_DECODER_MODE_SYNC);
       t.stop();
       fprintf(stderr,"decode ret=%d in %d ms\r\n",result,t.read_ms());
-      led2 = 0;
+      led1 = 0;
       mad_decoder_finish(&decoder);
       fclose(fp);
     }
@@ -201,7 +200,10 @@
   left_ch   = pcm->samples[0];
   right_ch  = pcm->samples[1];
 
-  while(dac_s < dac_e) wait_us(1);
+//  while(dac_s < dac_e) wait_us(1);
+  while(dac_s < dac_e) {
+    led2 = !led2;
+  }
   dac_e = dacbuf;  // potential thread problem ??  no...
   dac_s = dacbuf;