IIR filter of cascade form using float type operations and coefficients for ST Nucleo F401RE.

Dependencies:   UIT_ADDA mbed

Revision:
2:d4999d914eee
Parent:
1:b688b41d0ba1
Child:
4:83e5419d22bb
--- a/main.cpp	Mon Oct 20 23:52:12 2014 +0000
+++ b/main.cpp	Tue Oct 21 09:09:15 2014 +0000
@@ -1,5 +1,5 @@
 //--------------------------------------------------------------
-// IIR フィルタ,縦続形,dfloat で演算
+// IIR フィルタ,縦続形,float で演算
 //      Analog Input : A0
 //      Analog Output: MCP4922 using SPI
 // 2014/10/20, Copyright (c) 2014 MIKAMI, Naoki
@@ -7,7 +7,7 @@
 
 #include "mbed.h"
 
-#include "ADC_Interrupt.hpp"    // for ADC using interrupt
+#include "ADC_Base.hpp"         // for ADC not using interrupt
 #include "DAC_MCP4922.hpp"      // for DAC MCP4922
 #include "ScfClockTim3.hpp"     // for clock supplied to SCF
 
@@ -51,18 +51,18 @@
         float xn = adc_.Read();     // Read from A0
         //-----------------------------------------------
 
-        float yk = g0_*xn;
+        float yn = g0_*xn;
         for (int k=0; k<ORDER_/2; k++)
         {
-            float un = ck_[k].a1*uk[k].u1 + ck_[k].a2*uk[k].u2 + yk;
-            yk = un + ck_[k].b1*uk[k].u1 +  + ck_[k].b2*uk[k].u2;
+            float un = ck_[k].a1*uk[k].u1 + ck_[k].a2*uk[k].u2 + yn;
+            yn = un + ck_[k].b1*uk[k].u1 +  + ck_[k].b2*uk[k].u2;
             // 計算結果の移動
             uk[k].u2 = uk[k].u1;
             uk[k].u1 = un;
         }
 
         //-----------------------------------------------
-        myDac_.Write(yk);    // Write to DAC
+        myDac_.Write(yn);    // Write to DAC
     }
 }