
Guitar Effector using "mbed application board".
Guitar Effector using "mbed application board".
main.cpp@0:6b260c0931c5, 2015-08-15 (annotated)
- Committer:
- vaifreak
- Date:
- Sat Aug 15 05:24:39 2015 +0000
- Revision:
- 0:6b260c0931c5
- Child:
- 1:bfbfd6fede05
08/15
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
vaifreak | 0:6b260c0931c5 | 1 | #include "mbed.h" |
vaifreak | 0:6b260c0931c5 | 2 | #include "C12832.h" |
vaifreak | 0:6b260c0931c5 | 3 | |
vaifreak | 0:6b260c0931c5 | 4 | C12832 lcd(p5, p7, p6, p8, p11); |
vaifreak | 0:6b260c0931c5 | 5 | |
vaifreak | 0:6b260c0931c5 | 6 | // lcd.cls(); |
vaifreak | 0:6b260c0931c5 | 7 | // lcd.locate(0,3); |
vaifreak | 0:6b260c0931c5 | 8 | // lcd.printf("Analog In Out test."); |
vaifreak | 0:6b260c0931c5 | 9 | |
vaifreak | 0:6b260c0931c5 | 10 | Ticker sampling; |
vaifreak | 0:6b260c0931c5 | 11 | AnalogIn Ain(p17); |
vaifreak | 0:6b260c0931c5 | 12 | AnalogOut Aout(p18); |
vaifreak | 0:6b260c0931c5 | 13 | |
vaifreak | 0:6b260c0931c5 | 14 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 15 | /* For Test Signal */ |
vaifreak | 0:6b260c0931c5 | 16 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 17 | #define TEST_SIGNAL_ENABLE (0) // 1 : InternalSinWave for Debug |
vaifreak | 0:6b260c0931c5 | 18 | #define TEST_SIGNAL_FREQ (1000.0) // Frequency [Hz] |
vaifreak | 0:6b260c0931c5 | 19 | #define TEST_SIGNAL_AMP (30000.0) // Amplitude |
vaifreak | 0:6b260c0931c5 | 20 | #define PAI (3.14159) |
vaifreak | 0:6b260c0931c5 | 21 | |
vaifreak | 0:6b260c0931c5 | 22 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 23 | /* For ADC & DAC Setting */ |
vaifreak | 0:6b260c0931c5 | 24 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 25 | #define SAMPLING_TIME (25.0) // ADC Sampling Rate [us] |
vaifreak | 0:6b260c0931c5 | 26 | |
vaifreak | 0:6b260c0931c5 | 27 | volatile unsigned int *g_usiAd0cr, *g_usiAd0dr2; // ADC Reg |
vaifreak | 0:6b260c0931c5 | 28 | unsigned int *g_usiDacr; // DAC Reg |
vaifreak | 0:6b260c0931c5 | 29 | unsigned int g_usiFinalOut; |
vaifreak | 0:6b260c0931c5 | 30 | short g_ssBuff; |
vaifreak | 0:6b260c0931c5 | 31 | float g_fTestWaveT; |
vaifreak | 0:6b260c0931c5 | 32 | |
vaifreak | 0:6b260c0931c5 | 33 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 34 | /* Effect Process */ |
vaifreak | 0:6b260c0931c5 | 35 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 36 | void effectProcess() |
vaifreak | 0:6b260c0931c5 | 37 | { |
vaifreak | 0:6b260c0931c5 | 38 | // Line Out & In |
vaifreak | 0:6b260c0931c5 | 39 | *g_usiDacr = g_usiFinalOut; |
vaifreak | 0:6b260c0931c5 | 40 | // ADC Start |
vaifreak | 0:6b260c0931c5 | 41 | *g_usiAd0cr = 0x01200204; |
vaifreak | 0:6b260c0931c5 | 42 | |
vaifreak | 0:6b260c0931c5 | 43 | #if (TEST_SIGNAL_ENABLE == 1) // Test Signal Sin Wave |
vaifreak | 0:6b260c0931c5 | 44 | g_ssBuff = TEST_SIGNAL_AMP * sin(g_fTtestWaveT) - 32768; |
vaifreak | 0:6b260c0931c5 | 45 | g_fTestWaveT = g_fTestWaveT + 2.0 * PAI * SAMPLING_TIME * TEST_SIGNAL_FREQ / 1e6; |
vaifreak | 0:6b260c0931c5 | 46 | if(g_fTestWaveT >= (2.0 * PAI))g_fTestWaveT = 0; |
vaifreak | 0:6b260c0931c5 | 47 | #endif |
vaifreak | 0:6b260c0931c5 | 48 | |
vaifreak | 0:6b260c0931c5 | 49 | // |
vaifreak | 0:6b260c0931c5 | 50 | // Effect Func(); |
vaifreak | 0:6b260c0931c5 | 51 | // |
vaifreak | 0:6b260c0931c5 | 52 | |
vaifreak | 0:6b260c0931c5 | 53 | #if (TEST_SIGNAL_ENABLE == 0) |
vaifreak | 0:6b260c0931c5 | 54 | while(1){ |
vaifreak | 0:6b260c0931c5 | 55 | if((*g_usiAd0dr2 & 0x80000000) != 0)break; // ADC Finish ? |
vaifreak | 0:6b260c0931c5 | 56 | } |
vaifreak | 0:6b260c0931c5 | 57 | g_ssBuff = (short)((int)(*g_usiAd0dr2 & 0x0000FFF0) - 32768); |
vaifreak | 0:6b260c0931c5 | 58 | #endif |
vaifreak | 0:6b260c0931c5 | 59 | |
vaifreak | 0:6b260c0931c5 | 60 | g_usiFinalOut = 0x00010000 | (unsigned int)((int)g_ssBuff + 32768); |
vaifreak | 0:6b260c0931c5 | 61 | } |
vaifreak | 0:6b260c0931c5 | 62 | |
vaifreak | 0:6b260c0931c5 | 63 | |
vaifreak | 0:6b260c0931c5 | 64 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 65 | /* MAIN */ |
vaifreak | 0:6b260c0931c5 | 66 | /*******************************/ |
vaifreak | 0:6b260c0931c5 | 67 | int main() { |
vaifreak | 0:6b260c0931c5 | 68 | |
vaifreak | 0:6b260c0931c5 | 69 | g_usiAd0cr = (unsigned int*)0x40034000; |
vaifreak | 0:6b260c0931c5 | 70 | g_usiAd0dr2 = (unsigned int*)0x40034018; |
vaifreak | 0:6b260c0931c5 | 71 | g_usiDacr = (unsigned int*)0x4008C000; |
vaifreak | 0:6b260c0931c5 | 72 | sampling.attach_us(&effectProcess, SAMPLING_TIME); |
vaifreak | 0:6b260c0931c5 | 73 | |
vaifreak | 0:6b260c0931c5 | 74 | while(1){ |
vaifreak | 0:6b260c0931c5 | 75 | // |
vaifreak | 0:6b260c0931c5 | 76 | // Parameter Setting Func() |
vaifreak | 0:6b260c0931c5 | 77 | // |
vaifreak | 0:6b260c0931c5 | 78 | } |
vaifreak | 0:6b260c0931c5 | 79 | } |