The experiment using this program is introduced on "Interface" No.12, CQ publishing Co.,Ltd, 2014. 本プログラムを使った実験は,CQ出版社のインターフェース 2014年12月号で紹介しています.
Dependencies: DSProcessingIO mbed
Diff: FIR_LPF_Direct.cpp
- 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 +}