F401REにてアナログモデリングシンセもどきを作ってみました。 リングモジュレーターっぽいことやってみてます。正弦波、三角波、矩形波の関数が用意してあります。sin(2pift)のftをサンプリングレートごとに積分したものをiftとしてます。iftのポインタを関数に与えるだけで特に計算は入りません。

Dependencies:   mbed

Revision:
2:47210a089f76
Parent:
1:1b9ca25019a6
Child:
3:5cae780fe61e
--- a/main.cpp	Wed Jul 20 13:30:45 2016 +0000
+++ b/main.cpp	Wed Jul 20 13:51:07 2016 +0000
@@ -5,24 +5,24 @@
 
 DigitalOut myled(LED1);
 int data;
+float data_sin;
 
 void flip(){
     if(data > 100)   data = 0;
     else data++; 
+    data_sin = sin((data/100)*6.28) + 1;
     }
 
 
 int main() {
     
     mypwm.period_us(10);
-    flipper.attach_us(&flip, 50);
+    flipper.attach_us(&flip, 20);
     
   
     //printf("pwm set to %.2f %%\n", mypwm.read() * 100);
     
     while(1) {
-        mypwm.write( (float)data / 1000 );
-        //myled = !myled;
-        //wait(1);
+        mypwm.write( data_sin / 10 );
     }
 }