ECE_4180 / Mbed 2 deprecated 4180Lab3Part5

Dependencies:   SDFileSystem mbed-rtos mbed wave_player

Committer:
emanuel22e
Date:
Fri Oct 14 19:33:05 2022 +0000
Revision:
0:47321458789d
Child:
1:4fd1a4e54648
init

Who changed what in which revision?

UserRevisionLine numberNew contents of line
emanuel22e 0:47321458789d 1 #include "mbed.h"
emanuel22e 0:47321458789d 2 #include "rtos.h"
emanuel22e 0:47321458789d 3 #include "wave_player.h"
emanuel22e 0:47321458789d 4 #include "SDFileSystem.h"
emanuel22e 0:47321458789d 5 SDFileSystem sd(p5, p6, p7, p8, "sd");
emanuel22e 0:47321458789d 6 PwmOut red(p21);
emanuel22e 0:47321458789d 7 PwmOut green(p22);
emanuel22e 0:47321458789d 8 PwmOut blue(p23);
emanuel22e 0:47321458789d 9 AnalogOut speaker(p18);
emanuel22e 0:47321458789d 10 wave_player waver(&speaker);
emanuel22e 0:47321458789d 11 Thread thread1;
emanuel22e 0:47321458789d 12 Thread thread2;
emanuel22e 0:47321458789d 13 void t1() {
emanuel22e 0:47321458789d 14 red = 0;
emanuel22e 0:47321458789d 15 green = 0;
emanuel22e 0:47321458789d 16 blue = 0;
emanuel22e 0:47321458789d 17 while (1) {
emanuel22e 0:47321458789d 18 red = 1;
emanuel22e 0:47321458789d 19 green = 0;
emanuel22e 0:47321458789d 20 blue = 0;
emanuel22e 0:47321458789d 21 Thread::wait(300);
emanuel22e 0:47321458789d 22 red = 0;
emanuel22e 0:47321458789d 23 green = 1;
emanuel22e 0:47321458789d 24 blue = 0;
emanuel22e 0:47321458789d 25 Thread::wait(300);
emanuel22e 0:47321458789d 26 red = 0;
emanuel22e 0:47321458789d 27 green = 0;
emanuel22e 0:47321458789d 28 blue = 1;
emanuel22e 0:47321458789d 29 Thread::wait(300);
emanuel22e 0:47321458789d 30
emanuel22e 0:47321458789d 31 }
emanuel22e 0:47321458789d 32 void t2() {
emanuel22e 0:47321458789d 33 FILE *wave_file;
emanuel22e 0:47321458789d 34 //open wav file and play it
emanuel22e 0:47321458789d 35 wave_file=fopen("/sd/thread_sound.wav","r");
emanuel22e 0:47321458789d 36 waver.play(wave_file);
emanuel22e 0:47321458789d 37 fclose(wave_file);
emanuel22e 0:47321458789d 38 //end of program
emanuel22e 0:47321458789d 39 Thread::wait(500);
emanuel22e 0:47321458789d 40 }
emanuel22e 0:47321458789d 41
emanuel22e 0:47321458789d 42 int main() {
emanuel22e 0:47321458789d 43 thread1.start(t1);
emanuel22e 0:47321458789d 44 thread2.start(t2);
emanuel22e 0:47321458789d 45 while(1) {
emanuel22e 0:47321458789d 46
emanuel22e 0:47321458789d 47 }
emanuel22e 0:47321458789d 48 }