Guitar Effector using "mbed application board".

Dependencies:   C12832 mbed

Guitar Effector using "mbed application board".

/media/uploads/vaifreak/dscn0187.jpg

/media/uploads/vaifreak/schematic_00.jpg

/media/uploads/vaifreak/schematic_01.jpg

/media/uploads/vaifreak/schematic_02.jpg

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?

UserRevisionLine numberNew 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 }