The experiment using this program is introduced on "Interface" No.2, CQ publishing Co.,Ltd, 2015. 本プログラムを使った実験は,CQ出版社のインターフェース 2015年2月号で紹介しています.

Dependencies:   DSProcessingIO mbed

Revision:
0:398107c96b1b
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/IIR_LPF.cpp	Tue Jul 15 08:58:36 2014 +0000
@@ -0,0 +1,40 @@
+//--------------------------------------------------------------
+// IIR filter: Cascade strucrure
+//
+// Copyright (c) 2014 MIKAMI, Naoki,  2014/06/22
+//--------------------------------------------------------------
+
+#include "mbed.h"
+#include "AdcInternal.hpp"
+#include "MCP4922Single.hpp"
+#include "IIR_Coefficients.hpp"
+#include "IIR_Cascade.hpp"
+
+using namespace Mikami;
+
+// sampling frequency
+const float FS_ = 10.0e3f;
+
+Adc adc_(A0);
+Dac dacA_(Dac::DAC_A);
+Ticker timer_;           // for timer interrupt
+
+IirCascade<ORDER_/2> iirLpf(g0_, ck_);
+
+// Called every 0.1 ms
+void TimerIsr()
+{
+    float xn = adc_.Read(); // input
+    
+    // Execute IIR filter
+    float yn = iirLpf.Execute(xn);
+    
+    dacA_.Write(yn);        // output
+}
+
+int main()
+{
+    timer_.attach_us(&TimerIsr, 1.0e6f/FS_);
+
+    while (true) {}    // infinite loop
+}