gurapomu
/
speaker_test
圧電スピーカーでテトリスの音楽を流します
Diff: main.cpp
- Revision:
- 0:a864d5764edb
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Aug 28 13:59:46 2017 +0000 @@ -0,0 +1,52 @@ +#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" + +DigitalOut sp1(p5); +Ticker timer; +Ticker stop_tick; +InterruptIn stop_s(p6), restart_s(p7); +int i; + +int oto=0; + +void tick(void) +{ + sp1.write(oto); + oto=!oto; +} + +void stop (){ + wait(0.1); +} + +void stop_start(){ + stop_tick.attach_us(&stop, 1); +} + +void restart(){ + i = 65535; + stop_tick.detach(); +} + +int main() { + float mm[]={659,2,493,1,523,1,587,2,523,1,493,1,440,2,440,1,523,1,659,2,587,1,523,1,493,3,523,1,587,2,659,2,523,2,440,2,440,2,0,3,587,2,698,1,880,2,783,1,698,1,659,2,0,1,523,1,659,2,587,1,523,1,493,2,493,1,523,1,587,2,659,2,523,2,440,2,440,2,0,2,659,2,493,1,523,1,587,2,523,1,493,1,440,2,440,1,523,1,659,2,587,1,523,1,493,3,523,1,587,2,659,2,523,2,440,2,440,2,0,3,587,2,698,1,880,2,783,1,698,1,659,2,0,1,523,1,659,2,587,1,523,1,493,2,493,1,523,1,587,2,659,2,523,2,440,2,440,2,0,2,329,4,261,4,293,4,246,4,261,4,220,4,207,4,246,4,329,4,261,4,293,4,246,4,261,2,329,2,440,4,415,8}; + stop_s.mode(PullNone); + stop_s.fall(&stop_start); + restart_s.mode(PullNone); + restart_s.fall(&restart); + while(1){ + for (i=0;i<sizeof(mm)/sizeof(float);i+=2) { + timer.attach(&tick,1.0/mm[i]/2.0); + wait(0.2*mm[i+1]); + timer.detach(); + sp1.write(0); + } + } +} \ No newline at end of file