您好我正試圖在mbed應用程序屏蔽上使用不同的聲音頻率來創建歌曲的音調。雖然我已經獲得了所有的頻率,但我似乎無法放慢速度,因爲它只是在所有頻率上循環非常快。我試圖使用wait();功能,但似乎沒有正常工作。我希望瞭解如何糾正這些或其他解決方案的一些想法。如何使用C++減慢mbed設備上不同頻率的速度
這裏是我的代碼
#include "mbed.h"
#include "C12832.h" // for the LCD
#include "LM75B.h" //for the temperature sensor
#include "MMA7660.h" //For the accelerometer
/***************************************************************************
Global Variables
***************************************************************************/
C12832 shld_lcd (D11, D13, D12, D7, D10); // LCD on the application shield
PwmOut spkr(D6); //speaker
float c = 262.0; //These are the different frequencies
float d = 294.0;
float e = 330.0;
float f = 349.0;
float g = 392.0;
float a = 440.0;
float b = 494.0;
float C = 523.0;
void hotLineBling() {
//Here I am trying to use the frequencies to play the tone
spkr.period(1/e);
spkr.period(1/e);
spkr.period(1/e);
wait(0.5f);
spkr.period(1/C);
spkr.period(1/a);
spkr.period(1/e);
wait(0.5f);
spkr.period(1/d);
spkr.period(1/a);
spkr.period(1/d);
wait(1.0);
spkr.period(1/C);
spkr.period(1/a);
spkr.period(1/e);
wait(0.5f);
spkr.period(1/d);
spkr.period(1/a);
spkr.period(1/d);
spkr.period(1/c);
wait(1.0);
spkr.period(1/C);
spkr.period(1/a);
spkr.period(1/e);
wait(0.5f);
spkr.period(1/d);
spkr.period(1/a);
spkr.period(1/d);
wait(5.0);
}
int main()
{
hotLineBling();
while (1) {
spkr = 0.5;
wait(0.2f); //wait a little
}
}
OMG是它的工作原理謝謝,我需要添加幾個筆記,但可能沒有足夠的內存。再次感謝! – user5647516