mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-06-23 18:17:59 +02:00
my3: added function to change the gain + some functions for my3 flags added
This commit is contained in:
@ -110,6 +110,190 @@ patternParameters *setChipStatusRegister(int csr) {
|
||||
|
||||
}
|
||||
|
||||
patternParameters *setInterpolation(int mask) {
|
||||
int csr;
|
||||
if (mask)
|
||||
csr=chipStatusRegister|(1<< CSR_interp);
|
||||
else
|
||||
csr=chipStatusRegister & ~(1<< CSR_interp);
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
patternParameters *setPumpProbe(int mask) {
|
||||
int csr;
|
||||
if (mask)
|
||||
csr=chipStatusRegister|(1<< CSR_pumprobe);
|
||||
else
|
||||
csr=chipStatusRegister & ~(1<< CSR_pumprobe);
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
|
||||
}
|
||||
patternParameters *setDigitalPulsing(int mask) {
|
||||
|
||||
int csr;
|
||||
if (mask)
|
||||
csr=chipStatusRegister|(1<< CSR_dpulse);
|
||||
else
|
||||
csr=chipStatusRegister & ~(1<< CSR_dpulse);
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
|
||||
}
|
||||
patternParameters *setAnalogPulsing(int mask){
|
||||
|
||||
int csr;
|
||||
if (mask)
|
||||
csr=chipStatusRegister|(1<< CSR_apulse);
|
||||
else
|
||||
csr=chipStatusRegister & ~(1<< CSR_apulse);
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
|
||||
}
|
||||
patternParameters *setNegativePolarity(int mask){
|
||||
|
||||
int csr;
|
||||
if (mask)
|
||||
csr=chipStatusRegister|(1<< CSR_invpol);
|
||||
else
|
||||
csr=chipStatusRegister & ~(1<< CSR_invpol);
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
|
||||
}
|
||||
|
||||
int setGainPreamp(int pgain, int *csr) {
|
||||
|
||||
|
||||
|
||||
switch (pgain) {
|
||||
case Cp_0:
|
||||
case Cp_15:
|
||||
*csr=(*csr)&~(1<<CSR_C10pre);
|
||||
break;
|
||||
case Cp_10:
|
||||
case Cp_45:
|
||||
*csr=(*csr)|(1<<CSR_C10pre);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad preamp gain"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
switch (pgain) {
|
||||
case Cp_0:
|
||||
case Cp_10:
|
||||
*csr=(*csr)&~(1<<CSR_C15pre);
|
||||
break;
|
||||
case Cp_15:
|
||||
case Cp_45:
|
||||
*csr=(*csr)|(1<<CSR_C15pre);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad preamp gain"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
int setGainShaper(int shgain, int *csr){
|
||||
|
||||
|
||||
switch (shgain) {
|
||||
case Csh_0:
|
||||
case Csh_30:
|
||||
case Csh_50:
|
||||
case Csh_80:
|
||||
*csr=(*csr)&~(1<<CSR_C15sh);
|
||||
break;
|
||||
case Csh_15:
|
||||
case Csh_45:
|
||||
case Csh_65:
|
||||
case Csh_95:
|
||||
*csr=(*csr)|(1<<CSR_C15sh);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad shaper gain"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
switch (shgain) {
|
||||
case Csh_0:
|
||||
case Csh_15:
|
||||
case Csh_50:
|
||||
case Csh_65:
|
||||
*csr=(*csr)&~(1<<CSR_C30sh);
|
||||
break;
|
||||
case Csh_30:
|
||||
case Csh_45:
|
||||
case Csh_80:
|
||||
case Csh_95:
|
||||
*csr=(*csr)|(1<<CSR_C30sh);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad shaper gain"));
|
||||
return 1;
|
||||
}
|
||||
switch (shgain) {
|
||||
case Csh_0:
|
||||
case Csh_15:
|
||||
case Csh_30:
|
||||
case Csh_45:
|
||||
*csr=(*csr)&~(1<<CSR_C50sh);
|
||||
break;
|
||||
case Csh_80:
|
||||
case Csh_50:
|
||||
case Csh_65:
|
||||
case Csh_95:
|
||||
*csr=(*csr)|(1<<CSR_C50sh);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad shaper gain"));
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int setGainAC(int acgain, int *csr){
|
||||
|
||||
switch (acgain) {
|
||||
case Cac_450:
|
||||
*csr=(*csr)&~(1<<CSR_C225ACsh);
|
||||
break;
|
||||
case Cac225:
|
||||
*csr=(*csr)|(1<<CSR_C225ACsh);
|
||||
break;
|
||||
default:
|
||||
LOG(logERROR, ("Bad ac gain"));
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
patternParameters *setChipGain(int pgain, int shgain, int acgain){
|
||||
int csr=chipStatusRegister;
|
||||
|
||||
if (setGainPreamp(pgain,&csr))
|
||||
return NULL;
|
||||
if (setGainShaper(shgain,&csr))
|
||||
return NULL;
|
||||
if (setGainAC(acgain,&csr))
|
||||
return NULL;
|
||||
|
||||
return setChipStatusRegister(csr);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
patternParameters *setChannelRegisterChip(int ichip, int *mask, int *trimbits) {
|
||||
|
||||
patternParameters *pat = malloc(sizeof(patternParameters));
|
||||
|
Reference in New Issue
Block a user