music main

Dependencies:   USBHost mbed

Fork of AppBoard_Waveplayer by jim hamblen

Committer:
niv17
Date:
Thu Apr 09 20:24:22 2015 +0000
Revision:
10:6eefc37bfa23
Parent:
9:f1aebfbe7e78
Child:
11:e48cb1e38995
music main;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
samux 0:0d68fe822228 1 #include "mbed.h"
samux 0:0d68fe822228 2 #include "USBHostMSD.h"
4180_1 9:f1aebfbe7e78 3 #include "wave_player.h"
niv17 10:6eefc37bfa23 4 #include "MMA7660.h"
niv17 10:6eefc37bfa23 5 #include "rtos.h"
niv17 10:6eefc37bfa23 6
4180_1 9:f1aebfbe7e78 7 //mbed Application board waveplayer demo
4180_1 9:f1aebfbe7e78 8 //Plays the wave file "sample.wav" on the USB flash drive
4180_1 9:f1aebfbe7e78 9 //Outputs to onboard speaker (but at very low volume)
4180_1 9:f1aebfbe7e78 10 //and the Audio Out jack for connection to a set of amplified PC speakers (at higher volume)
4180_1 9:f1aebfbe7e78 11 //Needs a USB flash drive inserted with the wav file on it to run
samux 0:0d68fe822228 12
4180_1 9:f1aebfbe7e78 13 //Analog Out Jack
4180_1 9:f1aebfbe7e78 14 AnalogOut DACout(p18);
4180_1 9:f1aebfbe7e78 15 //On Board Speaker
4180_1 9:f1aebfbe7e78 16 PwmOut PWMout(p26);
niv17 10:6eefc37bfa23 17 int music = 0;
niv17 10:6eefc37bfa23 18 void readbuf();
niv17 10:6eefc37bfa23 19 Serial pc(USBTX,USBRX);
niv17 10:6eefc37bfa23 20 MMA7660 MMA(p28, p27);
niv17 10:6eefc37bfa23 21 AnalogIn sound(p17);
niv17 10:6eefc37bfa23 22 PwmOut r (p23);
niv17 10:6eefc37bfa23 23 PwmOut g (p24);
niv17 10:6eefc37bfa23 24 PwmOut b (p25);
niv17 10:6eefc37bfa23 25 FILE *wave_file;
niv17 10:6eefc37bfa23 26 void readbuf(void const *args);
niv17 10:6eefc37bfa23 27 unsigned short * waveArray;
niv17 10:6eefc37bfa23 28 DigitalIn fire(p14);
niv17 10:6eefc37bfa23 29 void changemusic(void const *args);
niv17 10:6eefc37bfa23 30 void changecolor(void const *args);
niv17 10:6eefc37bfa23 31 int randomval = 0;
niv17 10:6eefc37bfa23 32 int start = 0;
niv17 10:6eefc37bfa23 33 Ticker fillbuf;
niv17 10:6eefc37bfa23 34 unsigned short * buf;
niv17 10:6eefc37bfa23 35 wave_player waver(&DACout,&PWMout, &waveArray[0]);
4180_1 9:f1aebfbe7e78 36 int main()
4180_1 9:f1aebfbe7e78 37 {
samux 0:0d68fe822228 38 USBHostMSD msd("usb");
niv17 10:6eefc37bfa23 39 // for(int i = 0; i<256; i++)
niv17 10:6eefc37bfa23 40 // {
niv17 10:6eefc37bfa23 41 // waveArray[i] = 0;
niv17 10:6eefc37bfa23 42 // }
niv17 10:6eefc37bfa23 43
niv17 10:6eefc37bfa23 44 r.period(0.001);
4180_1 9:f1aebfbe7e78 45 //setup PWM hardware for a Class D style audio output
4180_1 9:f1aebfbe7e78 46 PWMout.period(1.0/400000.0);
niv17 10:6eefc37bfa23 47 printf("\r\n\nHello, wave world!\n");
4180_1 9:f1aebfbe7e78 48 // wait until connected to a USB device
4180_1 9:f1aebfbe7e78 49 while(!msd.connect()) {
samux 0:0d68fe822228 50 Thread::wait(500);
samux 0:0d68fe822228 51 }
4180_1 9:f1aebfbe7e78 52 //open wav file and play it
niv17 10:6eefc37bfa23 53
niv17 10:6eefc37bfa23 54
niv17 10:6eefc37bfa23 55 pc.printf("\r\nenter wavefile\n\n");
niv17 10:6eefc37bfa23 56 wave_file = fopen("/usb/sample.wav","r");
niv17 10:6eefc37bfa23 57
niv17 10:6eefc37bfa23 58 // waver.set_verbosity(1);
niv17 10:6eefc37bfa23 59 Thread thread(readbuf);
niv17 10:6eefc37bfa23 60 waver.play(wave_file);
niv17 10:6eefc37bfa23 61
4180_1 9:f1aebfbe7e78 62 fclose(wave_file);
niv17 10:6eefc37bfa23 63
niv17 10:6eefc37bfa23 64 pc.printf("\r\n END OF FILE\n");
niv17 10:6eefc37bfa23 65 pc.printf("\r\n\n BUFFER:::\n");
niv17 10:6eefc37bfa23 66
niv17 10:6eefc37bfa23 67
niv17 10:6eefc37bfa23 68
niv17 10:6eefc37bfa23 69 while(1);
niv17 10:6eefc37bfa23 70
niv17 10:6eefc37bfa23 71 }
niv17 10:6eefc37bfa23 72 void readbuf(void const * args){
niv17 10:6eefc37bfa23 73
niv17 10:6eefc37bfa23 74 while(1){
niv17 10:6eefc37bfa23 75 wait_ms(11.0);
niv17 10:6eefc37bfa23 76
niv17 10:6eefc37bfa23 77 waver.getFIFO(buf);
niv17 10:6eefc37bfa23 78
niv17 10:6eefc37bfa23 79 //for(int i = 0; i<256; i++) {
niv17 10:6eefc37bfa23 80 // printf("%hu\r\n",buf[i]);
niv17 10:6eefc37bfa23 81 // }
niv17 10:6eefc37bfa23 82 }
niv17 10:6eefc37bfa23 83
niv17 10:6eefc37bfa23 84 }