MP3 Player. You can change fwd/rev speed and skip. see: http://mbed.org/users/okini3939/notebook/lpc4088_madplayer/

Dependencies:   I2SSlave SDFileSystem TLV320 mbed

Committer:
okini3939
Date:
Tue Feb 18 00:22:50 2014 +0000
Revision:
0:8ba6230eefbd
1st build

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:8ba6230eefbd 1 #include "mbed.h"
okini3939 0:8ba6230eefbd 2 #include "player.h"
okini3939 0:8ba6230eefbd 3
okini3939 0:8ba6230eefbd 4 Serial pc(USBTX, USBRX);
okini3939 0:8ba6230eefbd 5 DigitalOut led1(LED1), led2(LED2), led3(LED3), led4(LED4);
okini3939 0:8ba6230eefbd 6
okini3939 0:8ba6230eefbd 7 Ticker ticker;
okini3939 0:8ba6230eefbd 8
okini3939 0:8ba6230eefbd 9 extern int dac_step;
okini3939 0:8ba6230eefbd 10
okini3939 0:8ba6230eefbd 11
okini3939 0:8ba6230eefbd 12 extern "C" void HardFault_Handler() {
okini3939 0:8ba6230eefbd 13 printf("Hard Fault!\r\n");
okini3939 0:8ba6230eefbd 14 exit(-1);
okini3939 0:8ba6230eefbd 15 }
okini3939 0:8ba6230eefbd 16
okini3939 0:8ba6230eefbd 17 void isr_ticker ()
okini3939 0:8ba6230eefbd 18 {
okini3939 0:8ba6230eefbd 19 static int w = 0;
okini3939 0:8ba6230eefbd 20
okini3939 0:8ba6230eefbd 21 // LED off
okini3939 0:8ba6230eefbd 22 w ++;
okini3939 0:8ba6230eefbd 23 if (w >= 10) {
okini3939 0:8ba6230eefbd 24 led4 = 0;
okini3939 0:8ba6230eefbd 25 w = 0;
okini3939 0:8ba6230eefbd 26 }
okini3939 0:8ba6230eefbd 27 }
okini3939 0:8ba6230eefbd 28
okini3939 0:8ba6230eefbd 29 void poll () {
okini3939 0:8ba6230eefbd 30 int i;
okini3939 0:8ba6230eefbd 31 static char buf[40];
okini3939 0:8ba6230eefbd 32 static char count = 0;
okini3939 0:8ba6230eefbd 33
okini3939 0:8ba6230eefbd 34 // serial control
okini3939 0:8ba6230eefbd 35 if (pc.readable()) {
okini3939 0:8ba6230eefbd 36 i = pc.getc();
okini3939 0:8ba6230eefbd 37 if (i == 0x0d || i == 0x0a) {
okini3939 0:8ba6230eefbd 38 buf[count] = 0;
okini3939 0:8ba6230eefbd 39 count = 0;
okini3939 0:8ba6230eefbd 40 led3 = 0;
okini3939 0:8ba6230eefbd 41 if (command(buf)) {
okini3939 0:8ba6230eefbd 42 led3 = 1;
okini3939 0:8ba6230eefbd 43 }
okini3939 0:8ba6230eefbd 44 } else
okini3939 0:8ba6230eefbd 45 if (i >= 0x20 && i < 0x7f && count < sizeof(buf) - 1) {
okini3939 0:8ba6230eefbd 46 buf[count] = i;
okini3939 0:8ba6230eefbd 47 count ++;
okini3939 0:8ba6230eefbd 48 }
okini3939 0:8ba6230eefbd 49 }
okini3939 0:8ba6230eefbd 50 }
okini3939 0:8ba6230eefbd 51
okini3939 0:8ba6230eefbd 52 int main(int argc, char *argv[])
okini3939 0:8ba6230eefbd 53 {
okini3939 0:8ba6230eefbd 54 int i;
okini3939 0:8ba6230eefbd 55
okini3939 0:8ba6230eefbd 56 pc.baud(115200);
okini3939 0:8ba6230eefbd 57 pc.printf("madplayer LPC4088\r\n");
okini3939 0:8ba6230eefbd 58 ticker.attach(&isr_ticker, 0.01);
okini3939 0:8ba6230eefbd 59 wait_ms(100);
okini3939 0:8ba6230eefbd 60 if (init_audio()) return -1;
okini3939 0:8ba6230eefbd 61
okini3939 0:8ba6230eefbd 62 led1 = 0;
okini3939 0:8ba6230eefbd 63 led2 = 1;
okini3939 0:8ba6230eefbd 64
okini3939 0:8ba6230eefbd 65 for (;;) {
okini3939 0:8ba6230eefbd 66 poll();
okini3939 0:8ba6230eefbd 67 }
okini3939 0:8ba6230eefbd 68 }