Arduino MP3 Shield MP3Player This program comes from http://mbed.org/cookbook/VS1002-MP3-Decoder (Very small modification done to fit latest libs)

Dependencies:   mbed SDFileSystem

Committer:
xshige
Date:
Sun Oct 03 16:56:38 2010 +0000
Revision:
0:8eab2c229d83

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
xshige 0:8eab2c229d83 1 #ifndef VS1002_H
xshige 0:8eab2c229d83 2 #define VS1002_H
xshige 0:8eab2c229d83 3
xshige 0:8eab2c229d83 4 //#define FS_ONLY
xshige 0:8eab2c229d83 5 #define FIXED_VOL
xshige 0:8eab2c229d83 6
xshige 0:8eab2c229d83 7 #include "mbed.h"
xshige 0:8eab2c229d83 8 #include "SDFileSystem.h"
xshige 0:8eab2c229d83 9 #include "string"
xshige 0:8eab2c229d83 10 #include "string.h"
xshige 0:8eab2c229d83 11
xshige 0:8eab2c229d83 12 //SCI_MODE register bits as of p.26 of the datasheet
xshige 0:8eab2c229d83 13 #define SM_DIFF 0x0001
xshige 0:8eab2c229d83 14 #define SM_SETTOZERO 0x0002
xshige 0:8eab2c229d83 15 #define SM_RESET 0x0004
xshige 0:8eab2c229d83 16 #define SM_OUTOFWAV 0x0008
xshige 0:8eab2c229d83 17 #define SM_PDOWN 0x0010
xshige 0:8eab2c229d83 18 #define SM_TESTS 0x0020
xshige 0:8eab2c229d83 19 #define SM_STREAM 0x0040
xshige 0:8eab2c229d83 20 #define SM_PLUSV 0x0080
xshige 0:8eab2c229d83 21 #define SM_DACT 0x0100
xshige 0:8eab2c229d83 22 #define SM_SDIORD 0x0200
xshige 0:8eab2c229d83 23 #define SM_SDISHARE 0x0400
xshige 0:8eab2c229d83 24 #define SM_SDINEW 0x0800
xshige 0:8eab2c229d83 25 #define SM_ADPCM 0x1000
xshige 0:8eab2c229d83 26 #define SM_ADPCM_HP 0x2000
xshige 0:8eab2c229d83 27
xshige 0:8eab2c229d83 28
xshige 0:8eab2c229d83 29 class VS1002 {
xshige 0:8eab2c229d83 30
xshige 0:8eab2c229d83 31 public:
xshige 0:8eab2c229d83 32 // VS1002(int _mmosi, int _mmiso, int _ssck, int _ccs, const char* _name,
xshige 0:8eab2c229d83 33 // int _mosi, int _miso, int _sck, int _cs, int _rst, int _dreq, int _dcs, int _vol);
xshige 0:8eab2c229d83 34 VS1002(PinName _mmosi, PinName _mmiso, PinName _ssck, PinName _ccs, const char* _name,
xshige 0:8eab2c229d83 35 PinName _mosi, PinName _miso, PinName _sck, PinName _cs, PinName _rst, PinName _dreq,
xshige 0:8eab2c229d83 36 PinName _dcs, PinName _vol);
xshige 0:8eab2c229d83 37
xshige 0:8eab2c229d83 38 void cs_low(void);
xshige 0:8eab2c229d83 39 void cs_high(void);
xshige 0:8eab2c229d83 40 void dcs_low(void);
xshige 0:8eab2c229d83 41 void dcs_high(void);
xshige 0:8eab2c229d83 42 void sci_en(void);
xshige 0:8eab2c229d83 43 void sci_dis(void);
xshige 0:8eab2c229d83 44 void sdi_en(void);
xshige 0:8eab2c229d83 45 void sdi_dis(void);
xshige 0:8eab2c229d83 46
xshige 0:8eab2c229d83 47 void sci_initialise(void);
xshige 0:8eab2c229d83 48 void sdi_initialise(void);
xshige 0:8eab2c229d83 49 void reset(void);
xshige 0:8eab2c229d83 50 void power_down(void);
xshige 0:8eab2c229d83 51
xshige 0:8eab2c229d83 52 void sci_write(unsigned char, unsigned short int);
xshige 0:8eab2c229d83 53 void sdi_write(unsigned char);
xshige 0:8eab2c229d83 54 unsigned short int read(unsigned short int);
xshige 0:8eab2c229d83 55 void sine_test_activate(unsigned char);
xshige 0:8eab2c229d83 56 void volume(void);
xshige 0:8eab2c229d83 57 void sine_test_deactivate(void);
xshige 0:8eab2c229d83 58 void play_song(int);
xshige 0:8eab2c229d83 59
xshige 0:8eab2c229d83 60 int num_of_files;
xshige 0:8eab2c229d83 61
xshige 0:8eab2c229d83 62 DigitalIn _DREQ;
xshige 0:8eab2c229d83 63 DigitalOut _RST;
xshige 0:8eab2c229d83 64 AnalogIn _VOL;
xshige 0:8eab2c229d83 65
xshige 0:8eab2c229d83 66 protected:
xshige 0:8eab2c229d83 67
xshige 0:8eab2c229d83 68 SPI _spi;
xshige 0:8eab2c229d83 69 DigitalOut _CS;
xshige 0:8eab2c229d83 70 DigitalOut _DCS;
xshige 0:8eab2c229d83 71 SDFileSystem _sd;
xshige 0:8eab2c229d83 72
xshige 0:8eab2c229d83 73 };
xshige 0:8eab2c229d83 74 #endif