// Licensed under a Creative Commons Attribution 3.0 Unported License.// Based on rcarduino.blogspot.com previous work.// www.electrosmash.com/pedalshield
int in_ADC0, in_ADC1;//variables for 2 ADCs values (ADC0, ADC1)
int POT0, POT1, POT2, out_DAC0, out_DAC1;//variables for 3 pots (ADC8, ADC9, ADC10)const int LED =3;const int FOOTSWITCH =7;const int TOGGLE =2;
int upper_threshold, lower_threshold;
void setup(){//ADC Configuration
ADC->ADC_MR|=0x80;// DAC in free running mode.
ADC->ADC_CR=2;// Starts ADC conversion.
ADC->ADC_CHER=0x1CC0;// Enable ADC channels 0,1,8,9 and 10 //DAC Configuration
analogWrite(DAC0,0);// Enables DAC0
analogWrite(DAC1,0);// Enables DAC1//pedalSHIELD pin configuration
pinMode(LED, OUTPUT);
pinMode(FOOTSWITCH, INPUT_PULLUP);
pinMode(TOGGLE, INPUT_PULLUP);}
void loop(){//Turn on the LED if the effect is ON.if(digitalRead(FOOTSWITCH)) digitalWrite(LED, HIGH);else digitalWrite(LED, LOW);//Read the ADCswhile((ADC->ADC_ISR&0x1CC0)!=0x1CC0);// wait for ADC 0, 1, 8, 9, 10 conversion complete.
in_ADC0=ADC->ADC_CDR[7];// read data from ADC0
in_ADC1=ADC->ADC_CDR[6];// read data from ADC1
POT0=ADC->ADC_CDR[10];// read data from ADC8
POT1=ADC->ADC_CDR[11];// read data from ADC9
POT2=ADC->ADC_CDR[12];// read data from ADC10
upper_threshold=map(POT0,0,4095,4095,2047);
lower_threshold=map(POT1,0,4095,0000,2047);if(in_ADC0>upper_threshold) in_ADC0=upper_threshold;if(in_ADC0<lower_threshold) in_ADC0=lower_threshold;if(in_ADC1<upper_threshold) in_ADC1=upper_threshold;if(in_ADC1>lower_threshold) in_ADC1=lower_threshold;//adjust the volume with POT2
out_DAC0=map(in_ADC0,0,4095,1,POT2);
out_DAC1=map(in_ADC1,0,4095,1,POT2);//flip the signal with the toggle switchif(digitalRead(TOGGLE)){out_DAC0=4095- out_DAC0; out_DAC1=4095- out_DAC1;}//Write the DACs
dacc_set_channel_selection(DACC_INTERFACE,0);//select DAC channel 0
dacc_write_conversion_data(DACC_INTERFACE, out_DAC0);//write on DAC
dacc_set_channel_selection(DACC_INTERFACE,1);//select DAC channel 1
dacc_write_conversion_data(DACC_INTERFACE, out_DAC1);//write on DAC}