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

Dependencies:   DSProcessingIO mbed

Revision:
0:b811ec8a7e8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FIR_LPF_Direct.cpp	Tue Jul 15 08:45:04 2014 +0000
@@ -0,0 +1,44 @@
+//--------------------------------------------------------------
+// FIR filter: Even order, Direct form
+//
+// Copyright (c) 2014 MIKAMI, Naoki,  2014/07/15 
+//--------------------------------------------------------------
+
+#include "mbed.h"
+#include "AdcInternal.hpp"
+#include "MCP4922Single.hpp"
+#include "coefficients_200.hpp"
+#include "FIR_Direct.hpp"
+
+using namespace Mikami;
+
+// sampling frequency
+const float FS_ = 10.0e3f;
+
+// for AD converter
+Adc adc_(A0);
+// for DA converter
+Dac dacA_(Dac::DAC_A);
+
+Ticker timer_;           // for timer interrupt
+DigitalOut pinD8_(D8);   // for measurement of execution time
+
+FirDirect<ORDER_> lpf(hm_);
+
+// Called every 0.1 ms
+void TimerIsr()
+{
+    float xn = adc_.Read(); // input
+
+    // Execute FIR filter
+    float yn = lpf.Execute(xn);
+
+    dacA_.Write(yn);        // output
+}
+
+int main()
+{
+    timer_.attach_us(&TimerIsr, 1.0e6f/FS_);
+
+    while (true) {}    // infinite loop
+}