Yasushi TAUCHI
/
Sound_Waon
音だし(DAC出力) 和音
main.cpp
- Committer:
- yueee_yt
- Date:
- 2011-12-26
- Revision:
- 0:2309ea52d6c9
File content as of revision 0:2309ea52d6c9:
#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); }