included the ival for digital_test_bit and set adc_write_reg to all FFFFFFFF by default in DAQ reg initialization

git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@103 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
l_maliakal_d 2012-01-13 13:40:58 +00:00
parent bbedcbc329
commit 429bedecca
4 changed files with 57 additions and 37 deletions

View File

@ -303,31 +303,49 @@ int setDAQRegister()
#ifdef VERBOSE #ifdef VERBOSE
printf("DAQ reg:20916770:%d",reg); printf("DAQ reg:20916770:%d",reg);
#endif #endif
return result; addr=ADC_SYNC_REG;
} val=12;
float setADCWriteRegister(float val){
u_int32_t addr, reg;
printf("\n\n\nChecking a few stuff\n");
printf("\nval received is %f,%d,%x",val,val,val);
printf("\nval converted to int and hex is %d,%x\n",(int)val,(float)val);
//setting ADC reg temporary
addr=ADC_WRITE_REG;
val=0xFFFFFFFF;
bus_w(addr,val); bus_w(addr,val);
reg=bus_r(addr); reg=bus_r(addr);
#ifdef VERBOSE #ifdef VERBOSE
printf("\n\nADC write reg:%X",reg); printf("\nADC SYNC reg:%d",reg);
#endif #endif
return result;
return val;
} }
u_int32_t bus_write(int addr, u_int32_t data) {
u_int32_t *ptr1,offset;
switch(addr){
case ADC_WRITE:
offset=ADC_WRITE_REG;
break;
default:
return FAIL;
}
ptr1=(u_int32_t*)(CSP0BASE+offset*2);
*ptr1=data;
return OK;
}
u_int32_t bus_read(int addr) {
u_int32_t *ptr1,offset;
switch(addr){
case ADC_WRITE:
offset=ADC_WRITE_REG;
break;
default:
offset=ADC_WRITE_REG;
}
ptr1=(u_int32_t*)(CSP0BASE+offset*2);
return *ptr1;
}
// direct pattern output // direct pattern output
u_int32_t putout(char *s, int modnum) { u_int32_t putout(char *s, int modnum) {
int i; int i;

View File

@ -27,7 +27,8 @@ u_int32_t bus_r(u_int32_t offset);
int setDummyRegister(); int setDummyRegister();
int setPhaseShiftOnce(); int setPhaseShiftOnce();
int setDAQRegister(); int setDAQRegister();
float setADCWriteRegister(float val); u_int32_t bus_write(int addr, u_int32_t data);
u_int32_t bus_read(int addr);
u_int32_t putout(char *s, int modnum); u_int32_t putout(char *s, int modnum);
u_int32_t readin(int modnum); u_int32_t readin(int modnum);

View File

@ -27,7 +27,7 @@
// DAC definitions // DAC definitions
enum {VREF_DS, VCASCN_PB, VCASCP_PB, VOUT_CM, VCASC_OUT, VIN_CM, VREF_COMP, IB_TESTC,ADC_WRITE}; enum {VREF_DS, VCASCN_PB, VCASCP_PB, VOUT_CM, VCASC_OUT, VIN_CM, VREF_COMP, IB_TESTC};
/* DAC adresses */ /* DAC adresses */
#define DACCS {0,0,1,1,2,2,3,3,4,4,5,5,6,6} #define DACCS {0,0,1,1,2,2,3,3,4,4,5,5,6,6}

View File

@ -745,7 +745,7 @@ int write_register(int file_des) {
int arg[2]; int arg[2];
int addr, val; int addr, val;
int n; int n;
u_int32_t address;
sprintf(mess,"Can't write to register\n"); sprintf(mess,"Can't write to register\n");
@ -764,10 +764,15 @@ int write_register(int file_des) {
if (differentClients==1 && lockStatus==1) { if (differentClients==1 && lockStatus==1) {
ret=FAIL; ret=FAIL;
sprintf(mess,"Detector locked by %s\n",lastClientIP); sprintf(mess,"Detector locked by %s\n",lastClientIP);
} else }
retval=bus_w(addr,val);
if(ret!=FAIL){
ret=bus_write(addr,val);
if(ret==OK)
retval=bus_read(addr);
}
#ifdef VERBOSE #ifdef VERBOSE
printf("Data set to 0x%x\n", retval); printf("Data set to 0x%x\n", retval);
@ -803,7 +808,7 @@ int read_register(int file_des) {
int arg; int arg;
int addr; int addr;
int n; int n;
u_int32_t address;
sprintf(mess,"Can't read register\n"); sprintf(mess,"Can't read register\n");
@ -820,7 +825,9 @@ int read_register(int file_des) {
printf("reading register 0x%x\n", addr); printf("reading register 0x%x\n", addr);
#endif #endif
retval=bus_r(addr); if(ret!=FAIL)
retval=bus_read(address);
#ifdef VERBOSE #ifdef VERBOSE
@ -920,13 +927,10 @@ int set_dac(int file_des) {
case HV_POT: case HV_POT:
ireg=HIGH_VOLTAGE; ireg=HIGH_VOLTAGE;
break; break;
case G_ADC_WRITE:
ireg=ADC_WRITE;
break;
default: default:
printf("Unknown DAC/TEMP/HV/ADC_write index %d\n",ind); printf("Unknown DAC/TEMP/HV index %d\n",ind);
sprintf(mess,"Unknown DAC/TEMP/HV/ADC_write index %d\n",ind); sprintf(mess,"Unknown DAC/TEMP/HV index %d\n",ind);
ret=FAIL; ret=FAIL;
} }
@ -939,11 +943,8 @@ int set_dac(int file_des) {
if(ireg==-1) if(ireg==-1)
retval=initDACbyIndexDACU(idac,val,imod); retval=initDACbyIndexDACU(idac,val,imod);
else else
{ //ADC_write { //HV
if(ireg==ADC_WRITE) if(ireg==HIGH_VOLTAGE)
retval=setADCWriteRegister(val);
//HV
else if(ireg==HIGH_VOLTAGE)
retval=initHighVoltageByModule(val,imod); retval=initHighVoltageByModule(val,imod);
//Temp //Temp
else else
@ -968,7 +969,7 @@ int set_dac(int file_des) {
else if (retval==val || val==-1) else if (retval==val || val==-1)
ret=OK; ret=OK;
if(ret==FAIL) if(ret==FAIL)
printf("Setting dac/hv/adc_write %d of module %d: wrote %f but read %f\n", ind, imod, val, retval); printf("Setting dac/hv %d of module %d: wrote %f but read %f\n", ind, imod, val, retval);
else{ else{
if (differentClients) if (differentClients)
ret=FORCE_UPDATE; ret=FORCE_UPDATE;