ctb and moench, exptime connects to set pattern wait time with level 0

This commit is contained in:
2019-03-06 15:17:54 +01:00
parent abc7a9bd2f
commit 0765b330f1
6 changed files with 62 additions and 33 deletions

View File

@ -544,6 +544,7 @@ void setupDetector() {
//Initialization of acquistion parameters
setTimer(SAMPLES, DEFAULT_NUM_SAMPLES); // update databytes and allocate ram
setTimer(FRAME_NUMBER, DEFAULT_NUM_FRAMES);
setTimer(ACQUISITION_TIME, DEFAULT_EXPTIME);
setTimer(CYCLES_NUMBER, DEFAULT_NUM_CYCLES);
setTimer(FRAME_PERIOD, DEFAULT_PERIOD);
setTimer(DELAY_AFTER_TRIGGER, DEFAULT_DELAY);
@ -909,6 +910,16 @@ int64_t setTimer(enum timerIndex ind, int64_t val) {
FILE_LOG(logINFO, ("\tGetting #frames: %lld\n", (long long int)retval));
break;
case ACQUISITION_TIME:
if(val >= 0){
FILE_LOG(logINFO, ("Setting exptime (pattern wait time level 0): %lldns\n",(long long int)val));
val *= (1E-3 * clkDivider[RUN_CLK]);
setPatternWaitTime(0, val);
}
retval = setPatternWaitTime(0, -1) / (1E-3 * clkDivider[RUN_CLK]);
FILE_LOG(logINFO, ("\tGetting exptime (pattern wait time level 0): %lldns\n", (long long int)retval));
break;
case FRAME_PERIOD:
if(val >= 0){
FILE_LOG(logINFO, ("Setting period: %lldns\n",(long long int)val));
@ -1022,11 +1033,18 @@ int validateTimer(enum timerIndex ind, int64_t val, int64_t retval) {
// convert back to timer
val = (val) / (1E-3 * clkDivider[ADC_CLK]);
if (val != retval) {
FILE_LOG(logERROR, ("Could not validate timer %d. Set %lld, got %lld\n",
(long long unsigned int)val, (long long unsigned int)retval));
return FAIL;
}
break;
case ACQUISITION_TIME:
// convert to freq
val *= (1E-3 * clkDivider[RUN_CLK]);
// convert back to timer
val = (val) / (1E-3 * clkDivider[RUN_CLK]);
if (val != retval) {
return FAIL;
}
break;
default:
break;
}

View File

@ -53,6 +53,7 @@ enum DACINDEX {D0, D1, D2, D3, D4, D5, D6, D7, D8, D9,
#define DEFAULT_DATA_BYTES (NCHIP * NCHAN * NUM_BITS_PER_PIXEL)
#define DEFAULT_NUM_SAMPLES (1)
#define DEFAULT_NUM_FRAMES (100 * 1000 * 1000)
#define DEFAULT_EXPTIME (0)
#define DEFAULT_NUM_CYCLES (1)
#define DEFAULT_PERIOD (1 * 1000 * 1000) //ns
#define DEFAULT_DELAY (0)