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

main.cpp

Committer:
MikamiUitOpen
Date:
2014-10-20
Revision:
1:e5e7a45f0cd6
Parent:
0:00e1dcdfaaad
Child:
3:4d766c291dba

File content as of revision 1:e5e7a45f0cd6:

//--------------------------------------------------------------
// 割り込みを使って 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: 10 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) {}
}