The experiment using this program is introduced on "Interface" No.11, CQ publishing Co.,Ltd, 2014. 本プログラムを使った実験は,CQ出版社のインターフェース 2014年11月号で紹介しています.
Dependencies: DSProcessingIO mbed
Fork of DAC_Test by
DAC_Test.cpp@0:f7880759a9d8, 2014-07-13 (annotated)
- Committer:
- CQpub0Mikami
- Date:
- Sun Jul 13 13:28:28 2014 +0000
- Revision:
- 0:f7880759a9d8
Test program of SignalProcessingIO
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
CQpub0Mikami | 0:f7880759a9d8 | 1 | //-------------------------------------------------------------- |
CQpub0Mikami | 0:f7880759a9d8 | 2 | // Test of DacDual class |
CQpub0Mikami | 0:f7880759a9d8 | 3 | // |
CQpub0Mikami | 0:f7880759a9d8 | 4 | // Copyright (c) 2014 MIKAMI, Naoki, 2014/06/17 |
CQpub0Mikami | 0:f7880759a9d8 | 5 | //-------------------------------------------------------------- |
CQpub0Mikami | 0:f7880759a9d8 | 6 | |
CQpub0Mikami | 0:f7880759a9d8 | 7 | #include "mbed.h" |
CQpub0Mikami | 0:f7880759a9d8 | 8 | #include "MCP4922Single.hpp" |
CQpub0Mikami | 0:f7880759a9d8 | 9 | #include "MCP4922Dual.hpp" |
CQpub0Mikami | 0:f7880759a9d8 | 10 | |
CQpub0Mikami | 0:f7880759a9d8 | 11 | using namespace Mikami; |
CQpub0Mikami | 0:f7880759a9d8 | 12 | |
CQpub0Mikami | 0:f7880759a9d8 | 13 | // sampling frequency |
CQpub0Mikami | 0:f7880759a9d8 | 14 | const float FS_ = 40.0e3f; |
CQpub0Mikami | 0:f7880759a9d8 | 15 | |
CQpub0Mikami | 0:f7880759a9d8 | 16 | DacDual dacAB_; |
CQpub0Mikami | 0:f7880759a9d8 | 17 | Ticker timer_; // for timer interrupt |
CQpub0Mikami | 0:f7880759a9d8 | 18 | |
CQpub0Mikami | 0:f7880759a9d8 | 19 | float phi_; |
CQpub0Mikami | 0:f7880759a9d8 | 20 | |
CQpub0Mikami | 0:f7880759a9d8 | 21 | // Called every 0.025 ms |
CQpub0Mikami | 0:f7880759a9d8 | 22 | void TimerIsr() |
CQpub0Mikami | 0:f7880759a9d8 | 23 | { |
CQpub0Mikami | 0:f7880759a9d8 | 24 | const float PI = 3.14159265f; |
CQpub0Mikami | 0:f7880759a9d8 | 25 | const float PI2 = 2*PI; |
CQpub0Mikami | 0:f7880759a9d8 | 26 | const float DPHI = PI2/10; |
CQpub0Mikami | 0:f7880759a9d8 | 27 | |
CQpub0Mikami | 0:f7880759a9d8 | 28 | float value = 0.8f*sinf(phi_); |
CQpub0Mikami | 0:f7880759a9d8 | 29 | |
CQpub0Mikami | 0:f7880759a9d8 | 30 | dacAB_.Write(value, value); |
CQpub0Mikami | 0:f7880759a9d8 | 31 | |
CQpub0Mikami | 0:f7880759a9d8 | 32 | phi_ += DPHI; |
CQpub0Mikami | 0:f7880759a9d8 | 33 | if (phi_ >= PI) phi_ -= PI2; |
CQpub0Mikami | 0:f7880759a9d8 | 34 | } |
CQpub0Mikami | 0:f7880759a9d8 | 35 | |
CQpub0Mikami | 0:f7880759a9d8 | 36 | int main() |
CQpub0Mikami | 0:f7880759a9d8 | 37 | { |
CQpub0Mikami | 0:f7880759a9d8 | 38 | timer_.attach_us(&TimerIsr, 1.0e6f/FS_); |
CQpub0Mikami | 0:f7880759a9d8 | 39 | |
CQpub0Mikami | 0:f7880759a9d8 | 40 | phi_ = 0; |
CQpub0Mikami | 0:f7880759a9d8 | 41 | while (true) {} // infinite loop |
CQpub0Mikami | 0:f7880759a9d8 | 42 | } |