use VS1033(MP3 decoder) and UL024TF(TFTLCD)

Dependencies:   TFTLCDwithFastIO FastIO SDFileSystem TouchPanel VS1033 mbed

Committer:
nameless129
Date:
Sun Jul 12 06:59:22 2015 +0000
Revision:
2:0090839c8276
Parent:
0:5f0e931ae677
Child:
3:67e97c846cec
first commit;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nameless129 0:5f0e931ae677 1 #include "ili9328.h"
nameless129 2:0090839c8276 2 #include <stdio.h>
nameless129 2:0090839c8276 3 #include "mbed.h"
nameless129 2:0090839c8276 4 #include "SDFileSystem.h"
nameless129 2:0090839c8276 5 #include "VS1053.h"
nameless129 2:0090839c8276 6
nameless129 0:5f0e931ae677 7 // prepare the data bus for writing commands and pixel data
nameless129 0:5f0e931ae677 8 BusOut dataBus( P1_28,P2_3,P1_18,P1_24,P1_19,P1_26,P1_27,P1_25 ); // 16 pins
nameless129 0:5f0e931ae677 9 // create the lcd instance
nameless129 0:5f0e931ae677 10 //(PinName CS, PinName RESET, PinName RS, PinName WR, BusOut *DATA_PORT, PinName BL=NC, PinName RD=NC, backlight_t blType=Constant, float defaultBackLightLevel=1.0)
nameless129 0:5f0e931ae677 11 ILI9328_LCD lcd( P0_12, P0_11, P0_13, P0_14, &dataBus, NC, P1_9 ); // control pins and data bus
nameless129 2:0090839c8276 12
nameless129 2:0090839c8276 13 SDFileSystem sd(/*MOSI*/ P0_9, /*MISO*/ P0_8, /*SCK*/ P1_29, /*CS*/ P0_2, /*Mountpoint*/ "sd");
nameless129 2:0090839c8276 14 VS1053 mp3(/*MOSI*/ P1_22 , /*MISO*/ P1_21, /*SCK*/ P1_20, /*CS*/ P1_23,
nameless129 2:0090839c8276 15 /*BSYNC*/ P2_16, /*DREQ*/ P2_17, /*RST*/ P2_18, /*SPI freq.*/ 10000000);
nameless129 2:0090839c8276 16
nameless129 2:0090839c8276 17
nameless129 2:0090839c8276 18 #define SD_READ_BLOCK_SIZE (1024)
nameless129 2:0090839c8276 19
nameless129 0:5f0e931ae677 20 int main()
nameless129 0:5f0e931ae677 21 {
nameless129 2:0090839c8276 22 static FILE *fp = NULL;
nameless129 2:0090839c8276 23 size_t sizeRead = 0;
nameless129 2:0090839c8276 24 size_t totalSizeSent=0;
nameless129 2:0090839c8276 25 size_t fileSize=0;
nameless129 2:0090839c8276 26 uint8_t buf[SD_READ_BLOCK_SIZE];
nameless129 2:0090839c8276 27
nameless129 2:0090839c8276 28 printf("Power ON\r\n");
nameless129 2:0090839c8276 29
nameless129 2:0090839c8276 30 //LCD Init.
nameless129 0:5f0e931ae677 31 lcd.Initialize(LANDSCAPE,RGB16);
nameless129 2:0090839c8276 32
nameless129 2:0090839c8276 33 /* for sine test mode */
nameless129 2:0090839c8276 34 // mp3.sine_test_activate(SineWave_10k);
nameless129 2:0090839c8276 35 // while(1);
nameless129 2:0090839c8276 36
nameless129 2:0090839c8276 37 //MP3 decoder Init.
nameless129 2:0090839c8276 38 mp3.hardwareReset();
nameless129 2:0090839c8276 39 mp3.sci_init();
nameless129 2:0090839c8276 40 mp3.sdi_init();
nameless129 2:0090839c8276 41 wait(0.1);
nameless129 2:0090839c8276 42
nameless129 2:0090839c8276 43 printf("init CMPL.\r\n");
nameless129 2:0090839c8276 44
nameless129 0:5f0e931ae677 45 lcd.SetBackground(COLOR_BLUE);
nameless129 0:5f0e931ae677 46 lcd.FillScreen(-1);
nameless129 0:5f0e931ae677 47 lcd.SetFont( &TerminusFont );
nameless129 0:5f0e931ae677 48 lcd.Print( "STOP:XXXXXXXX", CENTER, 25 ); // align text to center horizontally and use starndard colors
nameless129 2:0090839c8276 49
nameless129 2:0090839c8276 50 fp = fopen("/sd/2.mp3", "rb");
nameless129 2:0090839c8276 51
nameless129 2:0090839c8276 52 //Get file size
nameless129 2:0090839c8276 53 fseek( fp, 0, SEEK_END );
nameless129 2:0090839c8276 54 fileSize = ftell( fp );
nameless129 2:0090839c8276 55 printf("file size:%d\r\n",fileSize);
nameless129 2:0090839c8276 56
nameless129 2:0090839c8276 57 //move file pointer to top.
nameless129 2:0090839c8276 58 rewind(fp);
nameless129 2:0090839c8276 59
nameless129 2:0090839c8276 60 if (fp) {
nameless129 2:0090839c8276 61 clearerr(fp);
nameless129 2:0090839c8276 62 totalSizeSent = 0;
nameless129 2:0090839c8276 63 }
nameless129 2:0090839c8276 64 while(1)
nameless129 0:5f0e931ae677 65 {
nameless129 2:0090839c8276 66 if(totalSizeSent>=fileSize)
nameless129 2:0090839c8276 67 { // Close when the track reaches the end
nameless129 2:0090839c8276 68 mp3.stop();
nameless129 2:0090839c8276 69 fclose(fp);
nameless129 2:0090839c8276 70 fp = NULL;
nameless129 2:0090839c8276 71 printf("stop\r\n");
nameless129 2:0090839c8276 72 while(1)
nameless129 2:0090839c8276 73 {
nameless129 2:0090839c8276 74 }
nameless129 2:0090839c8276 75 }
nameless129 2:0090839c8276 76 else
nameless129 2:0090839c8276 77 {
nameless129 2:0090839c8276 78 sizeRead = fread(buf, sizeof(uint8_t), SD_READ_BLOCK_SIZE, fp);
nameless129 2:0090839c8276 79 totalSizeSent += mp3.sendDataBlock(buf, sizeRead);
nameless129 2:0090839c8276 80 //printf("total %d Send %d\r\n",totalSizeSent,sizeRead);
nameless129 2:0090839c8276 81 }
nameless129 2:0090839c8276 82 }
nameless129 0:5f0e931ae677 83 }