Prototype program of AD and DA using classes in UIT_ADDA. This program uses interrupt of ADC for ST Nucleo F401RE. UIT_ADDA のクラスを使った AD および DA のためのプログラムの雛形.ADC の割り込みを使うバージョン.ST Nucleo F401 用.

Dependencies:   UIT_ADDA mbed

Committer:
MikamiUitOpen
Date:
Thu Oct 30 00:01:12 2014 +0000
Revision:
5:aa0810bc0a76
Parent:
4:c195f4d49c91
Child:
6:82cc56bd6307
6

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:00e1dcdfaaad 1 //--------------------------------------------------------------
MikamiUitOpen 0:00e1dcdfaaad 2 // 割り込みを使って AD DA を行う場合の雛形1(入力:1 チャンネル)
MikamiUitOpen 0:00e1dcdfaaad 3 // Analog Input : A0
MikamiUitOpen 0:00e1dcdfaaad 4 // Analog Output: MCP4922 using SPI
MikamiUitOpen 4:c195f4d49c91 5 // 2014/10/23, Copyright (c) 2014 MIKAMI, Naoki
MikamiUitOpen 0:00e1dcdfaaad 6 //--------------------------------------------------------------
MikamiUitOpen 0:00e1dcdfaaad 7
MikamiUitOpen 0:00e1dcdfaaad 8 #include "mbed.h"
MikamiUitOpen 0:00e1dcdfaaad 9
MikamiUitOpen 0:00e1dcdfaaad 10 #include "ADC_Interrupt.hpp" // for ADC using interrupt
MikamiUitOpen 0:00e1dcdfaaad 11 #include "DAC_MCP4922.hpp" // for DAC MCP4922
MikamiUitOpen 0:00e1dcdfaaad 12 #include "ScfClockTim3.hpp" // for clock supplied to SCF
MikamiUitOpen 0:00e1dcdfaaad 13
MikamiUitOpen 0:00e1dcdfaaad 14 using namespace Mikami;
MikamiUitOpen 0:00e1dcdfaaad 15
MikamiUitOpen 1:e5e7a45f0cd6 16 const int FS_ = 10000; // Sampling frequency: 10 kHz
MikamiUitOpen 5:aa0810bc0a76 17 ADC_Intr adc_(A0, FS_); // for AD
MikamiUitOpen 3:4d766c291dba 18 DAC_MCP4922 myDac_; // for DA
MikamiUitOpen 0:00e1dcdfaaad 19
MikamiUitOpen 0:00e1dcdfaaad 20 uint16_t a2_ = 0;
MikamiUitOpen 0:00e1dcdfaaad 21 uint16_t a21_ = 0;
MikamiUitOpen 0:00e1dcdfaaad 22 float vol_ = 1.0f;
MikamiUitOpen 0:00e1dcdfaaad 23
MikamiUitOpen 0:00e1dcdfaaad 24 // Interrupt service routine for ADC
MikamiUitOpen 0:00e1dcdfaaad 25 void AdcIsr()
MikamiUitOpen 0:00e1dcdfaaad 26 {
MikamiUitOpen 0:00e1dcdfaaad 27 float xn = adc_.Read(); // Read from A0
MikamiUitOpen 0:00e1dcdfaaad 28 myDac_.Write(xn); // to DAC
MikamiUitOpen 0:00e1dcdfaaad 29 }
MikamiUitOpen 0:00e1dcdfaaad 30
MikamiUitOpen 0:00e1dcdfaaad 31 int main()
MikamiUitOpen 0:00e1dcdfaaad 32 {
MikamiUitOpen 0:00e1dcdfaaad 33 ScfClockTim3(420000); // cutoff frequency: 4.2 kHz
MikamiUitOpen 0:00e1dcdfaaad 34 adc_.SetIntrVec(AdcIsr); // Assign ISR for ADC interrupt
MikamiUitOpen 0:00e1dcdfaaad 35
MikamiUitOpen 0:00e1dcdfaaad 36 while (true) {}
MikamiUitOpen 0:00e1dcdfaaad 37 }