This commit is contained in:
commit
b27539a465
1 changed files with 129 additions and 0 deletions
129
detectorxcal
Normal file
129
detectorxcal
Normal file
|
|
@ -0,0 +1,129 @@
|
|||
//drive the dac channels
|
||||
|
||||
/*
|
||||
Crude code to get the Cosmic Pi up and running, spits out events (coincidence on both channels, after setting the HV to about 28V
|
||||
and the DAC to 22F (whatever that is).
|
||||
Makes the light blink (it's not very bright) and prints the event number.
|
||||
Rate on the test unit seems reasonable, we'll test this against a proper setup over the next few weeks
|
||||
To be re-written using interrupts for production code.
|
||||
*/
|
||||
|
||||
// the setup function runs once when you press reset or power the board
|
||||
byte smallpart;
|
||||
byte bigpart;
|
||||
int x = 0; //cosmic counter
|
||||
|
||||
#include <Wire.h>
|
||||
int HVVal = 0xFE;
|
||||
void setup() {
|
||||
// initialize digital pin LED_BUILTIN as an output.
|
||||
pinMode(PA6, OUTPUT);
|
||||
pinMode(PA4, OUTPUT);
|
||||
pinMode(PA5, OUTPUT);
|
||||
Serial.begin(9600);
|
||||
|
||||
//config SPI pins
|
||||
pinMode(PC7, OUTPUT);
|
||||
pinMode(PC8, OUTPUT);
|
||||
pinMode(PC3, OUTPUT);
|
||||
pinMode(PB13, OUTPUT);
|
||||
|
||||
//set input pins
|
||||
pinMode(PC12, INPUT);
|
||||
pinMode(PC11, INPUT);
|
||||
pinMode(PB10, INPUT);
|
||||
|
||||
|
||||
|
||||
digitalWrite(PC7, LOW);
|
||||
setHV(0xAD);
|
||||
digitalWrite(PC7, HIGH);
|
||||
|
||||
digitalWrite(PC8, LOW);
|
||||
setHV(0xAD);
|
||||
digitalWrite(PC8, HIGH);
|
||||
HVVal= HVVal+10;
|
||||
|
||||
Wire.setSDA(PB7);
|
||||
Wire.setSCL(PB8);
|
||||
Wire.begin();
|
||||
smallpart = 0x2F; //the lsb part
|
||||
bigpart = 0x02; // the msb part of the dac value
|
||||
|
||||
Serial.write("Hello ");
|
||||
// Serial.write(HVVal);
|
||||
|
||||
//digitalWrite(PA5, HIGH); // turn the LED on (HIGH is the voltage level)
|
||||
delay(1000); // wait for a second
|
||||
digitalWrite(PA5, LOW); // turn the LED off by making the voltage LOW
|
||||
//delay(10000);
|
||||
|
||||
int address = 0x60;
|
||||
|
||||
|
||||
Wire.beginTransmission(address);
|
||||
Wire.write(B00001000); // sends five bytes
|
||||
Wire.write(bigpart); // sends one byte
|
||||
Wire.write(smallpart);
|
||||
Wire.endTransmission();
|
||||
|
||||
Wire.beginTransmission(address);
|
||||
Wire.write(B00000000); // sends five bytes
|
||||
Wire.write(bigpart); // sends one byte
|
||||
Wire.write(smallpart);
|
||||
Wire.endTransmission();
|
||||
|
||||
|
||||
Serial.write("transmitted ");
|
||||
|
||||
Serial.write(" looping ");
|
||||
|
||||
}
|
||||
|
||||
// the loop function runs over and over again forever
|
||||
|
||||
void loop() {
|
||||
|
||||
|
||||
//debounce loop
|
||||
if (digitalRead(PB10) == 0) {
|
||||
//Serial.write("0");
|
||||
if (digitalRead(PB10) == 1) {
|
||||
//low to high print x
|
||||
//Serial.write("x");
|
||||
Serial.println(x);
|
||||
x++;
|
||||
digitalWrite(PA5, HIGH);
|
||||
delay(200);
|
||||
digitalWrite(PA5, LOW);
|
||||
}
|
||||
}
|
||||
|
||||
/*if PC11 == LOW {
|
||||
Serial.write("1");
|
||||
|
||||
if PC11 == HIGH {
|
||||
//low to high print x
|
||||
Serial.write("y");
|
||||
}
|
||||
}
|
||||
*/
|
||||
//smallpart--;
|
||||
}
|
||||
|
||||
// set the two HV supplies
|
||||
byte setHV(byte _send) // This function is what bitbangs the data
|
||||
{
|
||||
for(int i=0; i<8; i++) // There are 8 bits in a byte
|
||||
{
|
||||
digitalWrite(PC3, bitRead(_send, 7-i)); // Set MOSI
|
||||
//delay(1);
|
||||
digitalWrite(PB13, HIGH); // SCK high
|
||||
//bitWrite(_receive, i, digitalRead(MISO_pin)); // Capture MISO
|
||||
digitalWrite(PB13, LOW); // SCK low
|
||||
//digitalWrite(MOSI_pin, LOW); // Set MOSI
|
||||
|
||||
}
|
||||
//digitalWrite(SS_pin[j], HIGH); // SS high again
|
||||
}
|
||||
//return _receive; // Return the received data
|
||||
Loading…
Reference in a new issue