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.
bgm.cpp
00001 #include "bgm.h" 00002 00003 // construct & destruct/ 00004 bgm::bgm() 00005 : 00006 _timeout(new Timeout()), 00007 _buzzer(new PwmOut(PTC10)) 00008 {} 00009 00010 bgm::~bgm() 00011 { 00012 00013 } 00014 00015 void Sound::tone(float frequency, float duration) 00016 { 00017 _buzzer->period(1.0f/frequency); 00018 _buzzer->write(0.5); // 50% duty cycle - square wave 00019 _timeout->attach(callback(this, &Sound::tone_off), duration ); 00020 } 00021 // The number "1,2,3,4,5,6,7" means each number note in the notation 00022 00023 // Excerpted from famous Chinese and English songs 00024 void bgm::welcome(){ 00025 tone(784.0f,0.4f); 00026 wait(0.4f); 00027 tone(784.0f,0.1f); 00028 wait(0.1f); 00029 tone(880.0f,0.4f); 00030 wait(0.4f); 00031 tone(587.0f,0.8f); 00032 wait(0.8f); 00033 tone(523.0f,0.4f); 00034 wait(0.4f); 00035 tone(523.0f,0.1f); 00036 wait(0.1f); 00037 tone(440.0f,0.4f); 00038 wait(0.4f); 00039 tone(587.0f,0.8f); 00040 wait(0.8f); 00041 tone(784.0f,0.4f); 00042 wait(0.4f); 00043 tone(784.0f,0.4f); 00044 wait(0.4f); 00045 tone(880.0f,0.1f); 00046 wait(0.1f); 00047 tone(1046.0f,0.4f); 00048 wait(0.4f); 00049 tone(880.0f,0.2f); 00050 wait(0.2f); 00051 tone(784.0f,0.2f); 00052 wait(0.2f); 00053 tone(523.0f,0.4f); 00054 wait(0.4f); 00055 tone(523.0f,0.1f); 00056 wait(0.1f); 00057 tone(440.0f,0.1f); 00058 wait(0.1f); 00059 tone(587.0f,0.8f); 00060 wait(0.8f); 00061 00062 } 00063 00064 void bgm::battlefield(){ 00065 tone(659.0f,0.3f); 00066 wait(0.3f); 00067 tone(659.0f,0.2f); 00068 wait(0.2f); 00069 tone(587.0f,0.3f); 00070 wait(0.3f); 00071 tone(523.0f,0.2f); 00072 wait(0.2f); 00073 tone(523.0f,0.3f); 00074 wait(0.3f); 00075 tone(659.0f,0.2f); 00076 wait(0.2f); 00077 tone(784.0f,0.3f); 00078 wait(0.3f); 00079 tone(1046.0f,0.3f); 00080 wait(0.3f); 00081 tone(1046.0f,0.2f); 00082 wait(0.2f); 00083 tone(1046.0f,0.2f); 00084 wait(0.2f); 00085 tone(880.0f,0.5f); 00086 wait(0.5f); 00087 tone(784.0f,0.3f); 00088 wait(0.3f); 00089 tone(784.0f,0.2f); 00090 wait(0.2f); 00091 tone(880.0f,0.3f); 00092 wait(0.3f); 00093 tone(784.0f,0.3f); 00094 wait(0.3f); 00095 tone(659.0f,0.2f); 00096 wait(0.2f); 00097 tone(523.0f,0.3f); 00098 wait(0.3f); 00099 tone(587.0f,0.3f); 00100 wait(0.3f); 00101 tone(587.0f,0.2f); 00102 wait(0.2f); 00103 tone(659.0f,0.3f); 00104 wait(0.3f); 00105 tone(587.0f,0.2f); 00106 wait(0.2f); 00107 00108 } 00109 00110 void bgm::died(){ 00111 tone(784.0f,0.2f); 00112 wait(0.2f); 00113 tone(880.0f,0.3f); 00114 wait(0.3f); 00115 tone(784.0f,0.2f); 00116 wait(0.2f); 00117 tone(698.0f,0.3f); 00118 wait(0.3f); 00119 tone(659.0f,0.2f); 00120 wait(0.2f); 00121 tone(698.0f,0.3f); 00122 wait(0.3f); 00123 tone(784.0f,0.3f); 00124 wait(0.3f); 00125 tone(587.0f,0.3f); 00126 wait(0.3f); 00127 tone(784.0f,0.2f); 00128 wait(0.2f); 00129 tone(784.0f,0.3f); 00130 wait(0.3f); 00131 tone(659.0f,0.2f); 00132 wait(0.2f); 00133 tone(523.0f,0.3f); 00134 wait(0.3f); 00135 00136 } 00137 00138 void bgm::tone_off() 00139 { 00140 // called after timeout 00141 _buzzer->write(0.0); 00142 }
Generated on Wed Jul 13 2022 13:02:18 by
