Nucleo F401REでFM音源を実装するやつ の実装途中で32ポリ音源にしたやつ 外部DACとオペアンプを利用 現在はMCP4922とNJM2737

Dependencies:   AOTTrigon I2CEEPROM MCP4922 mbed

Main.cpp

Committer:
kb10uy
Date:
2014-12-29
Revision:
7:439c57c20593
Parent:
6:76e79bf6b571
Child:
10:0ffdefe75566

File content as of revision 7:439c57c20593:

#include "Main.h"

Ticker sampler;
Timer master;
MCP4922 output(D4,D3,D7);
AOTTrigon t;

const double smpps = 40000.0;
const double smptime = 1.0 / smpps;
const double smpus = 1000000.0 / smpps;

double ntime = 0.0;
double freq = 2.5f;

void tick_sampling();

int main(){
    output.referenceMode(MCP4922::DAC_A, MCP4922::REF_UNBUFFERED);
    output.gainMode(MCP4922::DAC_A, MCP4922::GAIN_1X);
    output.powerMode(MCP4922::DAC_A, MCP4922::POWER_NORMAL);
    output.referenceMode(MCP4922::DAC_B, MCP4922::REF_UNBUFFERED);
    output.gainMode(MCP4922::DAC_B, MCP4922::GAIN_1X);
    output.powerMode(MCP4922::DAC_B, MCP4922::POWER_NORMAL);
    
    sampler.attach_us(&tick_sampling, smpus);
    master.start();
    while(1);
}

void tick_sampling() {
    ntime=master.read_us()/1000000.0;
    for(int i=0;i<64;i++) t.sin(M_PI*2.0*freq*ntime);
    output.write(MCP4922::DAC_A, t.sin(M_PI*2.0f*freq*ntime)/2.0+0.5);
}