Yasushi TAUCHI
/
Sound_Waon
Diff: main.cpp
- Revision:
- 0:2309ea52d6c9
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Dec 26 13:13:15 2011 +0000 @@ -0,0 +1,64 @@ +#define mC 261.626 +#define mD 293.665 +#define mE 329.628 +#define mF 349.228 +#define mG 391.995 +#define mA 440.000 +#define mB 493.883 + +#include "mbed.h" + +Ticker timer; +AnalogOut sp1(p18); +float ms[180]; +float m1,m2,m3; + +void sound_out(void) { + static float j1=0; + static float j2=0; + static float j3=0; + j1=j1+m1; + j2=j2+m2; + j3=j3+m3; + if (j1>180)j1=j1-180; + if (j2>180)j2=j2-180; + if (j3>180)j3=j3-180; + sp1.write((ms[(int)j1]+ms[(int)j2]+ms[(int)j3])/3.0); +} + +int main() { + int i; + //setting sincurv + for (i=0;i<180;i++) { + ms[i]=sin(2*3.1415*(float)i/180.0)/2.0+0.5; + } + timer.attach_us(&sound_out,10); //10kHz + //ceg + m1=mC*2*180/100000; + m2=mE*2*180/100000; + m3=mG*2*180/100000; + wait(1.0f); + //cfa + m1=mC*2*180/100000; + m2=mF*2*180/100000; + m3=mA*2*180/100000; + wait(1.0f); + //ceg + m1=mC*2*180/100000; + m2=mE*2*180/100000; + m3=mG*2*180/100000; + wait(1.0f); + //bdg + m1=mB*180/100000; + m2=mD*2*180/100000; + m3=mG*2*180/100000; + wait(1.0f); + //ceg + m1=mC*2*180/100000; + m2=mE*2*180/100000; + m3=mG*2*180/100000; + wait(1.0f); + timer.detach(); + sp1.write(0.0f); + while (1); +}