This commit is contained in:
commit
a007524389
1 changed files with 87 additions and 0 deletions
87
dualchannel.ino
Normal file
87
dualchannel.ino
Normal file
|
|
@ -0,0 +1,87 @@
|
||||||
|
//this works from the electronics crate, reads out Ch 6 and Ch7 fast enough, peak samples generally occur at 4th position on readback.
|
||||||
|
//Shotky diodes are used to prevent negative voltage hurting the ADC.
|
||||||
|
|
||||||
|
int x; // read value
|
||||||
|
int adcloopctr;
|
||||||
|
unsigned long values[200];
|
||||||
|
const int eventtrigger = 49;
|
||||||
|
boolean eventhappened = false;
|
||||||
|
int sampledepth = 10;
|
||||||
|
int printctr = 0;
|
||||||
|
int readoutctr;
|
||||||
|
|
||||||
|
void setup()
|
||||||
|
{
|
||||||
|
// analogReference(INTERNAL);
|
||||||
|
pinMode(eventtrigger, INPUT);
|
||||||
|
attachInterrupt(eventtrigger, monkey, FALLING);
|
||||||
|
Serial.begin(115200); // initialize the serial port:
|
||||||
|
REG_ADC_MR = 0x10380180; // change from 10380200 to 10380180, 1 is the PREESCALER and 8 means FREERUN
|
||||||
|
ADC -> ADC_CHER = 0x03; // enable ADC on pin A6 and A7
|
||||||
|
eventhappened = false;
|
||||||
|
adcloopctr=0;
|
||||||
|
Serial.println("Alive");
|
||||||
|
}
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
//unsigned long t = micros(); // init time an elapsed time, in micro seconds
|
||||||
|
|
||||||
|
//for(i = 0; i < 1000; i++) {
|
||||||
|
|
||||||
|
// instrucction to measure
|
||||||
|
while((ADC->ADC_ISR & 0x3)==0); // wait for conversion
|
||||||
|
values[adcloopctr+100] = ADC->ADC_CDR[0]; // read value A0
|
||||||
|
values[adcloopctr] = ADC->ADC_CDR[1]; // read value A0
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if (eventhappened){
|
||||||
|
//Serial.println("Event");
|
||||||
|
//for (int printctr = adcloopctr+1; printctr+1 < sampledepth+adcloopctr; printctr++) {
|
||||||
|
//Serial.print(printctr);
|
||||||
|
//Serial.print(", ");
|
||||||
|
//if (printctr > sampledepth){
|
||||||
|
//Serial.println(values[(printctr)]);
|
||||||
|
//Serial.println(values[(printctr)]);
|
||||||
|
//}
|
||||||
|
//printctr = ++printctr % sampledepth;
|
||||||
|
readoutctr=10;
|
||||||
|
for (int firsthalf=adcloopctr+1; firsthalf<sampledepth; firsthalf++)
|
||||||
|
{
|
||||||
|
Serial.print(readoutctr);
|
||||||
|
Serial.print(", ");
|
||||||
|
Serial.print(values[firsthalf]);
|
||||||
|
Serial.print(", ");
|
||||||
|
Serial.println(values[firsthalf+100]);
|
||||||
|
|
||||||
|
|
||||||
|
readoutctr--;
|
||||||
|
}
|
||||||
|
for (int secondhalf=0; secondhalf<adcloopctr+1; secondhalf++)
|
||||||
|
{
|
||||||
|
Serial.print(readoutctr);
|
||||||
|
Serial.print(", ");
|
||||||
|
Serial.print(values[secondhalf]);
|
||||||
|
Serial.print(", ");
|
||||||
|
Serial.println(values[secondhalf+100]);
|
||||||
|
readoutctr--;
|
||||||
|
}
|
||||||
|
|
||||||
|
eventhappened = false;
|
||||||
|
//delay(200);
|
||||||
|
}
|
||||||
|
adcloopctr++;
|
||||||
|
if (adcloopctr==sampledepth) {
|
||||||
|
adcloopctr=0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void monkey()
|
||||||
|
{
|
||||||
|
//Serial.println("trigger");
|
||||||
|
eventhappened = true;
|
||||||
|
}
|
||||||
Loading…
Reference in a new issue