f303k8 wav player

Dependencies:   SDFileSystem mbed

Committer:
nameless129
Date:
Fri Dec 02 03:58:42 2016 +0000
Revision:
4:6e56da5068f3
Parent:
3:b3b9c58e08f2
open

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nameless129 0:1561c4efda0e 1 #include "mbed.h"
nameless129 0:1561c4efda0e 2 #include <stdio.h>
nameless129 0:1561c4efda0e 3 #include "SDFileSystem.h"
nameless129 0:1561c4efda0e 4 #include "wavPlayer.h"
nameless129 1:7a3f34b2d18b 5 #include "TIM6Driver.h"
nameless129 0:1561c4efda0e 6
nameless129 0:1561c4efda0e 7 void TIM6_IRQHandler(void);
nameless129 0:1561c4efda0e 8 Ticker flipper;
nameless129 0:1561c4efda0e 9 FATFS FatFs;
nameless129 0:1561c4efda0e 10 wavPlayerOnDAC wavPlayer(PA_4);
nameless129 0:1561c4efda0e 11
nameless129 0:1561c4efda0e 12 SDFileSystem sd(PB_5, PB_4, PB_3, PA_11, "sd"); // the pinout on the mbed Cool Components workshop board
nameless129 2:203d58b06b0f 13 DigitalIn button(PF_1,PullDown);
nameless129 0:1561c4efda0e 14 BusIn DipSW(PA_10,PA_9,PA_12,PB_0);
nameless129 0:1561c4efda0e 15
nameless129 0:1561c4efda0e 16 void TIM6_IRQHandler() {
nameless129 1:7a3f34b2d18b 17 TIM6ClearInt();
nameless129 0:1561c4efda0e 18 wavPlayer.DACOutProc();
nameless129 0:1561c4efda0e 19 }
nameless129 0:1561c4efda0e 20
nameless129 0:1561c4efda0e 21 int main(void)
nameless129 0:1561c4efda0e 22 {
nameless129 0:1561c4efda0e 23 FRESULT wavFileResult;
nameless129 0:1561c4efda0e 24 FIL fil;
nameless129 2:203d58b06b0f 25 char fileName[10]="0.wav";
nameless129 2:203d58b06b0f 26 uint8_t oldDipSW=0;
nameless129 2:203d58b06b0f 27 uint8_t oldButton=0;
nameless129 0:1561c4efda0e 28
nameless129 0:1561c4efda0e 29 MX_TIM6_Init();
nameless129 0:1561c4efda0e 30 NVIC_SetVector(TIM6_DAC1_IRQn, (uint32_t)&TIM6_IRQHandler);
nameless129 0:1561c4efda0e 31 MX_NVIC_Init();
nameless129 0:1561c4efda0e 32
nameless129 0:1561c4efda0e 33 DipSW.mode(PullDown);
nameless129 2:203d58b06b0f 34 f_mount(&FatFs,"",0);
nameless129 2:203d58b06b0f 35 printf("power ON \r\n");
nameless129 2:203d58b06b0f 36 wavFileResult = f_open(&fil, "0.wav",FA_READ);
nameless129 0:1561c4efda0e 37
nameless129 2:203d58b06b0f 38 while(1)
nameless129 0:1561c4efda0e 39 {
nameless129 2:203d58b06b0f 40 while(button.read() == 0)
nameless129 2:203d58b06b0f 41 {
nameless129 2:203d58b06b0f 42 }
nameless129 2:203d58b06b0f 43 if(oldDipSW != DipSW.read())
nameless129 2:203d58b06b0f 44 {
nameless129 2:203d58b06b0f 45 f_close(&fil);
nameless129 2:203d58b06b0f 46 fileName[0] = DipSW.read()+0x30;
nameless129 2:203d58b06b0f 47 printf("name:%s\r\n",fileName);
nameless129 2:203d58b06b0f 48 wavFileResult = f_open(&fil, fileName, FA_READ);
nameless129 2:203d58b06b0f 49 }
nameless129 2:203d58b06b0f 50 oldDipSW = DipSW.read();
nameless129 2:203d58b06b0f 51 printf("error:%d\r\n",(int)wavFileResult);
nameless129 2:203d58b06b0f 52 wavPlayer.setFile(&fil);
nameless129 2:203d58b06b0f 53 printf("start\r\n");
nameless129 2:203d58b06b0f 54 wavPlayer.rampUp();
nameless129 2:203d58b06b0f 55 oldButton = button.read();
nameless129 2:203d58b06b0f 56 while(wavPlayer.readProc() == 0)
nameless129 2:203d58b06b0f 57 {
nameless129 2:203d58b06b0f 58 if(button.read() == 1 && oldButton == 0)
nameless129 2:203d58b06b0f 59 {
nameless129 2:203d58b06b0f 60 break;
nameless129 2:203d58b06b0f 61 }
nameless129 2:203d58b06b0f 62 oldButton = button.read();
nameless129 2:203d58b06b0f 63 }
nameless129 2:203d58b06b0f 64 printf("END\r\n");
nameless129 2:203d58b06b0f 65 wavPlayer.rewind();
nameless129 2:203d58b06b0f 66 wavPlayer.rampDown();
nameless129 2:203d58b06b0f 67 while(button.read() == 1 && oldButton == 1)
nameless129 2:203d58b06b0f 68 {
nameless129 2:203d58b06b0f 69 }
nameless129 0:1561c4efda0e 70
nameless129 0:1561c4efda0e 71 }
nameless129 0:1561c4efda0e 72 }