Plays audio samples from an array stored in flash. Values are from an audio *.wav file that was automatically converted to a C array data source file. 8-bit samples used in this version and a PWM output pin (instead of AnalogOut)

Dependencies:   mbed

Fork of flash_audio_player_8bit by jim hamblen

See https://os.mbed.com/users/4180_1/notebook/using-flash-to-play-audio-clips/ for instructions

Revision:
0:e4f991474a45
Child:
1:bd7bef7df00b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Sat Oct 21 20:53:36 2017 +0000
@@ -0,0 +1,37 @@
+#include "mbed.h"
+AnalogOut speaker(p18);
+Ticker sampletick;
+DigitalOut myled(LED1);
+//Plays Audio Clip using Array in Flash
+//
+//setup const array in flash with audio values 
+//from free wav file conversion tool at
+//http://ccgi.cjseymour.plus.com/wavtocode/wavtocode.htm
+//see https://os.mbed.com/users/4180_1/notebook/using-flash-to-play-audio-clips/
+#include "cylonbyc.h"
+
+#define sample_freq 11025.0
+//get and set the frequency from wav conversion tool GUI
+int i=0;
+
+//interrupt routine to play next audio sample from array in flash
+void audio_sample ()
+{
+    speaker.write_u16(sound_data[i]);
+    i++;
+    if (i>= NUM_ELEMENTS) {
+        i = 0;
+        sampletick.detach();
+        myled = 0;
+    }
+}
+int main()
+{
+    while(1) {
+        myled = 1;
+//use a ticker to play send next audio sample value to D/A
+        sampletick.attach(&audio_sample, 1.0 / sample_freq);
+//can do other things while audio plays with timer interrupts
+        wait(10.0);
+    }
+}