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 用.
Diff: main.cpp
- Revision:
- 0:00e1dcdfaaad
- Child:
- 1:e5e7a45f0cd6
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Mon Oct 20 07:59:05 2014 +0000 @@ -0,0 +1,37 @@ +//-------------------------------------------------------------- +// 割り込みを使って AD DA を行う場合の雛形1(入力:1 チャンネル) +// Analog Input : A0 +// Analog Output: MCP4922 using SPI +// 2014/10/20, Copyright (c) 2014 MIKAMI, Naoki +//-------------------------------------------------------------- + +#include "mbed.h" + +#include "ADC_Interrupt.hpp" // for ADC using interrupt +#include "DAC_MCP4922.hpp" // for DAC MCP4922 +#include "ScfClockTim3.hpp" // for clock supplied to SCF + +using namespace Mikami; + +const int FS_ = 10000; // Sampling frequency: 24 kHz +ADC_Intr adc_(A0, FS_, A1, A2); // for AD +DAC_MCP4922 myDac_(DAC_MCP4922::DAC_A); // for DA + +uint16_t a2_ = 0; +uint16_t a21_ = 0; +float vol_ = 1.0f; + +// Interrupt service routine for ADC +void AdcIsr() +{ + float xn = adc_.Read(); // Read from A0 + myDac_.Write(xn); // to DAC +} + +int main() +{ + ScfClockTim3(420000); // cutoff frequency: 4.2 kHz + adc_.SetIntrVec(AdcIsr); // Assign ISR for ADC interrupt + + while (true) {} +}