commit 7d3ebb4931de3711439b6effdeda02af1448b9b2 Author: James Devine Date: Thu Sep 1 22:18:55 2016 +0200 diff --git a/CosmicPiAnalogueSoftwareTrigger2 b/CosmicPiAnalogueSoftwareTrigger2 new file mode 100644 index 0000000..24b7d53 --- /dev/null +++ b/CosmicPiAnalogueSoftwareTrigger2 @@ -0,0 +1,80 @@ +uint16_t bufa; // 4 buffers of 256 readings +uint16_t bufb; // 4 buffers of 256 readings +bool firstrun = 0; +int t; //time since last event +float maxcount; +float slowfreq; //second frequency measure, +//int f; +int evt; //event +void setup() { + Serial.begin(115200); + Serial.println("Cosmic Pi Status: Alive"); + int t = analogRead(0); + pinMode(13, OUTPUT); + //int evt; //events + + ADC->ADC_MR |= 0x80; // these lines set free running mode on adc 4 and adc 6 (pin A0 and A1 - see Due Pinout Diagram thread) + ADC->ADC_CR = 2; + ADC->ADC_CHER = 0x50; // this is (1<<7) | (1<<6) for adc 3 and adc 6 + evt=0; + //f = 1; + maxcount = 0; +} + +void loop() { + int q0 = 0, q1 = 0; + int a1, a3; + //for (int i = 0; i < 5000; i++) { + while ((ADC->ADC_ISR & 0x50) != 0x50); // wait for two conversions (pin A3[4] and A1[6]) + a1 = ADC->ADC_CDR[4]; // read data on A3 pin + a3 = ADC->ADC_CDR[6]; // read data on A1 pin + bufa = a1; + bufb = a3; + if (bufb > 600) { //software trigger threshold + if (bufa > 600) { //software trigger threshold + t=millis()-t; + if (t > 0) { + //f =((f+(1000/t))/2); + Serial.print("Cosmic Pi coincidence trigger event. Potential cosmic rays caught so far: "); Serial.print(evt); Serial.print(". Time since last event in ms: "); Serial.print(t); Serial.print(" Frequency: "); + //Serial.println(f); + maxcount = maxcount + (t/1000); + slowfreq = (1/(maxcount/evt)); + //Serial.println(maxcount); + Serial.print(slowfreq); + Serial.println(" Hz"); + evt++; + t=millis(); + digitalWrite(13,HIGH); + delay(5); + digitalWrite(13,LOW); + } + } + } + //q0+=a1; + //q1+=a3; + //} + //t = micros() - t; + //Serial.print("5000 pairs of conversions in ");Serial.print(t);Serial.println(" micros"); + //Serial.print("A0 total:");Serial.println(q0); + //Serial.print("A1 total:");Serial.println(q1); + //Serial.print("A0:");Serial.println("A1:"); + /*if (firstrun) { + for (int i = 0; i < 5000; i++) { + if (bufb[i] > 920) { //software trigger + if (bufa[i] > 920) { //software trigger + //evt++; + Serial.print(evt);Serial.print(" Time since last trigger ");Serial.print(t);Serial.println(" micros"); + //for (int j = i - 10; j < i + 40; j++) { + // Serial.print(j); Serial.print("; "); Serial.print(bufa[j]); Serial.print("; "); Serial.print(bufb[j]); Serial.println(";"); + //} + + } + } + } + t=micros(); + } + firstrun = 1; +*/ +} + +