Big Mouth Billy Bass player that takes raw wavefiles and decision list text files from an SD card
Dependencies: SDFileSystem mbed BillyBass
main.cpp
- Committer:
- bikeNomad
- Date:
- 2013-06-15
- Revision:
- 6:e90a12ca056f
- Parent:
- 5:5b846ef42702
- Child:
- 7:ce27f959813b
File content as of revision 6:e90a12ca056f:
#include "billybass.hpp"
#include "song.hpp"
#include "player.hpp"
#include "action.hpp"
// Power:
// Power GND J9/14
// Vin (6V) J9/16
// Digital:
DigitalOut tail(PTA13); // J3/2
DigitalOut mouth(PTC12); // J3/1
DigitalOut head(PTC13); // J3/3
DigitalIn pushbutton(PTD5); // J3/4
PwmOut redLED(LED_RED);
PwmOut greenLED(LED_GREEN);
PwmOut blueLED(LED_BLUE);
// Analog:
// GND J3/14
// VrefH J3/16
AnalogOut speaker(PTE30); // J10/11
// PTD0 D10 - Used for CS of SPI
// PTD2 D11 - Used for MOSI of SPI
// PTD3 D12 - Used for MISO of SPI
// PTC5 J1/9 Used for SCLK of SPI
// MOSI, MISO, SCLK, CS, name
SDFileSystem sd(PTD2, PTD3, PTC5, PTD0, SD_NAME);
Serial pc(USBTX, USBRX);
std::list<Song> songs;
int main()
{
SongPlayer player;
pc.baud(SERIAL_BAUD);
redLED = 1.0;
greenLED = 1.0;
blueLED = 1.0;
// read the directory
DIR *bassDir = opendir(BASS_DIRECTORY);
if (bassDir)
{
while (dirent *dir = bassDir->readdir())
{
char fn[ MAX_FILENAME_LENGTH ];
snprintf(fn, sizeof(fn), "%s/%s", BASS_DIRECTORY, dir->d_name);
pc.printf(fn);
// if this is a valid wave filename
if (Song::isValidWaveFileName(fn))
{
pc.printf("\tvalid\r\n");
player.playEntireSong(fn);
pc.printf("Song time: %f\r\n", player.timeInSong);
}
else
{
pc.printf("\tnot valid\r\n");
}
}
}
else
{
pc.printf("Error opening " BASS_DIRECTORY);
}
}
Ned Konz