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.
Audio.cpp
00001 #include "Audio.h" 00002 00003 extern Serial dbg; 00004 00005 double nada[10] = {0, 247, 262, 294, 330, 349, 392, 440, 494, 523}; 00006 //double nadas[16] = { 6, 6, 0, 6, 00007 // 0, 4, 6, 0, 00008 // 8, 0, 0, 0, 00009 // 1, 0, 0, 0 }; 00010 // 00011 unsigned int nadas[8] = { 1, 2, 3, 4, 00012 5, 6, 7, 8 }; 00013 00014 Audio::Audio(PinName buzzer): _out(buzzer) 00015 { 00016 } 00017 00018 void Audio::SetVolume(double volume) 00019 { 00020 vol = volume; 00021 } 00022 00023 void Audio::SetDuration(unsigned int milisec) 00024 { 00025 ms = milisec; 00026 } 00027 00028 void Audio::PlayNote(unsigned int angka) 00029 { 00030 if(angka > 8) angka -= 8; 00031 00032 double Nada = nada[angka]; 00033 PlayNote(Nada*4.24, ms, vol); 00034 } 00035 00036 void Audio::mute() 00037 { 00038 DigitalOut *out = new DigitalOut(_out); 00039 out->write(0); 00040 delete out; 00041 } 00042 00043 void Audio::PlayNote(double frequency, double duration, double volume) 00044 { 00045 PwmOut *out = new PwmOut(_out); 00046 out->period(1.0/frequency); 00047 out->write(volume/2.0); 00048 wait_ms(duration); 00049 out->write(0.0); 00050 delete out; 00051 } 00052 00053 // ----------------------------------------------------------------------------- 00054 MyAudio::MyAudio(PinName buzz) : Audio (buzz) 00055 {} 00056 00057 void MyAudio::play(const int &code) 00058 { 00059 switch(code) 00060 { 00061 case 0 : 00062 mute(); 00063 break; 00064 case 1 : 00065 playing(6); 00066 set(); 00067 playing(1); 00068 set(); 00069 mute(); 00070 break; 00071 case 2 : 00072 00073 // break; 00074 case 3 : 00075 00076 // break; 00077 case 4 : 00078 set(); 00079 playing(1); 00080 break; 00081 case 5 : 00082 set(); 00083 for(int i=0; i<3; i++)playing(4); 00084 break; 00085 default: 00086 set(100, 0.5); 00087 for(int j=0; j<8; j++) 00088 { 00089 playing(nadas[j]); 00090 } 00091 set(); 00092 mute(); 00093 break; 00094 } 00095 } 00096 00097 void MyAudio::set(double dur, double vol) 00098 { 00099 Audio::SetVolume(vol); 00100 Audio::SetDuration(dur); 00101 } 00102 00103 void MyAudio::playing(unsigned int note) 00104 { 00105 Audio::PlayNote(note); 00106 } 00107 00108 void MyAudio::mute() 00109 { 00110 Audio::mute(); 00111 }
Generated on Mon Aug 1 2022 04:18:18 by
1.7.2