Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp
00001 #include "mbed.h" 00002 #include "rtos.h" 00003 #include "SDBlockDevice.h" 00004 #include "FATFileSystem.h" 00005 #include "wave_player.h" 00006 00007 // LED Components 00008 PwmOut led(LED1); 00009 00010 // SD File System Components 00011 SDBlockDevice sd(p5, p6, p7, p8); 00012 FATFileSystem fs("sd"); 00013 00014 // Audio Components 00015 AnalogOut dac(p18); 00016 PwmOut speaker(p25); 00017 wave_player wav(&dac, &speaker); 00018 00019 Thread led_thread, audio_thread; 00020 00021 void led_siren() { 00022 const int build_time = 100; 00023 while (1) { 00024 //LED warm up effect using PWM 00025 for(int i=0; i<build_time; i++) { 00026 led = i / (float) build_time; 00027 ThisThread::sleep_for(1000.0*0.02); 00028 } 00029 //LED at full brightness level 00030 led = 1.0; 00031 ThisThread::sleep_for(1000.0*0.25); 00032 //LED cool down effect using PWM 00033 for(int i=build_time-1; i>0; i--) { 00034 led = i/ (float) build_time; 00035 ThisThread::sleep_for(1000.0*0.02); 00036 } 00037 //LED off 00038 led = 0.0; 00039 ThisThread::sleep_for(1000.0*1.5); 00040 } 00041 } 00042 00043 void play_audio() { 00044 FILE * wav_file; 00045 speaker.period(1.0/1000000.0); 00046 while (1) { 00047 sd.init(); 00048 fs.mount(&sd); 00049 wav_file = fopen("/sd/siren.wav", "r"); 00050 wav.play(wav_file); 00051 fclose(wav_file); 00052 sd.deinit(); 00053 fs.unmount(); 00054 } 00055 } 00056 00057 // main() runs in its own thread in the OS 00058 int main() 00059 { 00060 led_thread.start(led_siren); 00061 audio_thread.start(play_audio); 00062 while (true) { 00063 ThisThread::sleep_for(500); 00064 } 00065 }
Generated on Thu Jul 21 2022 00:50:20 by
1.7.2