不韋 呂
/
UIT2_ReverbCombClass
Reverb system using single comb filter class for ST Nucleo F401RE.
main.cpp@3:634a77f4702d, 2014-11-14 (annotated)
- Committer:
- MikamiUitOpen
- Date:
- Fri Nov 14 06:50:54 2014 +0000
- Revision:
- 3:634a77f4702d
- Parent:
- 1:b3a60a05da72
4
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
MikamiUitOpen | 0:47e72130375e | 1 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 2 | // Reverb system using comb filter |
MikamiUitOpen | 3:634a77f4702d | 3 | // 2014/11/12, Copyright (c) 2014 MIKAMI, Naoki |
MikamiUitOpen | 0:47e72130375e | 4 | //-------------------------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 5 | |
MikamiUitOpen | 0:47e72130375e | 6 | #include "mbed.h" |
MikamiUitOpen | 0:47e72130375e | 7 | |
MikamiUitOpen | 0:47e72130375e | 8 | #include "ADC_Base.hpp" // for ADC not using interrupt |
MikamiUitOpen | 0:47e72130375e | 9 | #include "DAC_MCP4922.hpp" // for DAC MCP4922 |
MikamiUitOpen | 0:47e72130375e | 10 | |
MikamiUitOpen | 0:47e72130375e | 11 | #include "comb_filter.hpp" |
MikamiUitOpen | 0:47e72130375e | 12 | |
MikamiUitOpen | 0:47e72130375e | 13 | using namespace Mikami; |
MikamiUitOpen | 0:47e72130375e | 14 | |
MikamiUitOpen | 0:47e72130375e | 15 | const int FS_ = 12000; // Sampling frequency: 12 kHz |
MikamiUitOpen | 0:47e72130375e | 16 | ADC_Base adc_(A0, FS_); // for AD |
MikamiUitOpen | 0:47e72130375e | 17 | DAC_MCP4922 myDac_; // for DA |
MikamiUitOpen | 0:47e72130375e | 18 | |
MikamiUitOpen | 0:47e72130375e | 19 | const float G_C_ = 0.8f; |
MikamiUitOpen | 0:47e72130375e | 20 | const float G0_ = 1.0f - G_C_; |
MikamiUitOpen | 0:47e72130375e | 21 | CombFilter<1153> comb_(G_C_); |
MikamiUitOpen | 0:47e72130375e | 22 | |
MikamiUitOpen | 0:47e72130375e | 23 | DigitalIn sw_(D2, PullDown); |
MikamiUitOpen | 0:47e72130375e | 24 | |
MikamiUitOpen | 0:47e72130375e | 25 | int main() |
MikamiUitOpen | 0:47e72130375e | 26 | { |
MikamiUitOpen | 3:634a77f4702d | 27 | myDac_.ScfClockTim3(500000); // cutoff frequency: 5 kHz |
MikamiUitOpen | 0:47e72130375e | 28 | while (true) |
MikamiUitOpen | 0:47e72130375e | 29 | { |
MikamiUitOpen | 0:47e72130375e | 30 | float xn = adc_.Read(); // Read from A0 |
MikamiUitOpen | 0:47e72130375e | 31 | //----------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 32 | |
MikamiUitOpen | 0:47e72130375e | 33 | float yn; |
MikamiUitOpen | 0:47e72130375e | 34 | if (sw_.read() == 1) yn = comb_.Execute(G0_*xn); |
MikamiUitOpen | 0:47e72130375e | 35 | else yn = xn; |
MikamiUitOpen | 0:47e72130375e | 36 | |
MikamiUitOpen | 0:47e72130375e | 37 | //----------------------------------------------- |
MikamiUitOpen | 0:47e72130375e | 38 | myDac_.Write(yn); // Write to DAC |
MikamiUitOpen | 0:47e72130375e | 39 | } |
MikamiUitOpen | 0:47e72130375e | 40 | } |