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 CQpub0 Mikami

Committer:
CQpub0Mikami
Date:
Sun Jul 13 13:28:28 2014 +0000
Revision:
0:f7880759a9d8
Test program of SignalProcessingIO

Who changed what in which revision?

UserRevisionLine numberNew 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 }