f303k8 wav player

Dependencies:   SDFileSystem mbed

Committer:
nameless129
Date:
Tue Nov 29 12:09:35 2016 +0000
Revision:
2:203d58b06b0f
Parent:
1:7a3f34b2d18b
Child:
3:b3b9c58e08f2
release

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 0:1561c4efda0e 13 DigitalOut pin(PA_12);
nameless129 0:1561c4efda0e 14 DigitalOut pin2(PB_0);
nameless129 2:203d58b06b0f 15 DigitalIn button(PF_1,PullDown);
nameless129 0:1561c4efda0e 16 BusIn DipSW(PA_10,PA_9,PA_12,PB_0);
nameless129 0:1561c4efda0e 17
nameless129 0:1561c4efda0e 18 void TIM6_IRQHandler() {
nameless129 1:7a3f34b2d18b 19 TIM6ClearInt();
nameless129 0:1561c4efda0e 20 wavPlayer.DACOutProc();
nameless129 0:1561c4efda0e 21 }
nameless129 0:1561c4efda0e 22
nameless129 0:1561c4efda0e 23 int main(void)
nameless129 0:1561c4efda0e 24 {
nameless129 0:1561c4efda0e 25 FRESULT wavFileResult;
nameless129 0:1561c4efda0e 26 FIL fil;
nameless129 2:203d58b06b0f 27 char fileName[10]="0.wav";
nameless129 2:203d58b06b0f 28 uint8_t oldDipSW=0;
nameless129 2:203d58b06b0f 29 uint8_t oldButton=0;
nameless129 0:1561c4efda0e 30
nameless129 0:1561c4efda0e 31 MX_TIM6_Init();
nameless129 0:1561c4efda0e 32 NVIC_SetVector(TIM6_DAC1_IRQn, (uint32_t)&TIM6_IRQHandler);
nameless129 0:1561c4efda0e 33 MX_NVIC_Init();
nameless129 0:1561c4efda0e 34
nameless129 0:1561c4efda0e 35 DipSW.mode(PullDown);
nameless129 2:203d58b06b0f 36 f_mount(&FatFs,"",0);
nameless129 2:203d58b06b0f 37 printf("power ON \r\n");
nameless129 2:203d58b06b0f 38 wavFileResult = f_open(&fil, "0.wav",FA_READ);
nameless129 0:1561c4efda0e 39
nameless129 2:203d58b06b0f 40 while(1)
nameless129 0:1561c4efda0e 41 {
nameless129 2:203d58b06b0f 42 while(button.read() == 0)
nameless129 2:203d58b06b0f 43 {
nameless129 2:203d58b06b0f 44 }
nameless129 2:203d58b06b0f 45 if(oldDipSW != DipSW.read())
nameless129 2:203d58b06b0f 46 {
nameless129 2:203d58b06b0f 47 f_close(&fil);
nameless129 2:203d58b06b0f 48 fileName[0] = DipSW.read()+0x30;
nameless129 2:203d58b06b0f 49 printf("name:%s\r\n",fileName);
nameless129 2:203d58b06b0f 50 wavFileResult = f_open(&fil, fileName, FA_READ);
nameless129 2:203d58b06b0f 51 }
nameless129 2:203d58b06b0f 52 oldDipSW = DipSW.read();
nameless129 2:203d58b06b0f 53 printf("error:%d\r\n",(int)wavFileResult);
nameless129 2:203d58b06b0f 54 wavPlayer.setFile(&fil);
nameless129 2:203d58b06b0f 55 printf("start\r\n");
nameless129 2:203d58b06b0f 56 wavPlayer.rampUp();
nameless129 2:203d58b06b0f 57 oldButton = button.read();
nameless129 2:203d58b06b0f 58 while(wavPlayer.readProc() == 0)
nameless129 2:203d58b06b0f 59 {
nameless129 2:203d58b06b0f 60 if(button.read() == 1 && oldButton == 0)
nameless129 2:203d58b06b0f 61 {
nameless129 2:203d58b06b0f 62 break;
nameless129 2:203d58b06b0f 63 }
nameless129 2:203d58b06b0f 64 oldButton = button.read();
nameless129 2:203d58b06b0f 65 }
nameless129 2:203d58b06b0f 66 printf("END\r\n");
nameless129 2:203d58b06b0f 67 wavPlayer.rewind();
nameless129 2:203d58b06b0f 68 wavPlayer.rampDown();
nameless129 2:203d58b06b0f 69 while(button.read() == 1 && oldButton == 1)
nameless129 2:203d58b06b0f 70 {
nameless129 2:203d58b06b0f 71 }
nameless129 0:1561c4efda0e 72
nameless129 0:1561c4efda0e 73 }
nameless129 0:1561c4efda0e 74 }