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