圧電スピーカーでテトリスの音楽を流します

Dependencies:   mbed

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