//----------------------------------------------------------------------
//  AD 変換の結果をそのまま DA 変換する
//      DA 出力はアップサンプリングしない
//
//  2022/12/14, Copyright (c) 2022 MIKAMI, Naoki
//----------------------------------------------------------------------

#include "DSP_AdcIntr.hpp"  // ADC 用，割り込み使用
#include "DSP_Dac.hpp"      // DAC 用
using namespace Mikami;
#pragma diag_suppress 870   // マルチバイト文字使用の警告抑制のため

const float FS_ = 10.0f;    // 入力の標本化周波数： 10 kHz

DspAdcIntr myAdc_(FS_, A1); // AD 変換器, ADC2使用（デフォルト）
DspDac myDac_;              // DA 変換器, 出力端子: A2（デフォルト）

// ADC 変換終了割込みに対する割込みサービス･ルーチン
void AdcIsr()
{
    float xn = myAdc_.Read();   // 入力
    myDac_.Write(xn);           // 出力
}

int main()
{
    printf("\r\nAD 変換の結果をそのまま DA 変換します\r\n");
    printf("DA 変換の際はアップサンプリングを行いません\r\n");

    // ADC 変換終了割込みに対する割込みサービス･ルーチンを割り当てる
    myAdc_.SetIntrVec(&AdcIsr);

    while (true) {}
}
