mirror of
https://github.com/slsdetectorgroup/slsDetectorPackage.git
synced 2025-05-02 02:40:04 +02:00
gotthard dacs only save 10 bits but firmware is more than 14-16 bits..so changed setdacreg to save only msb and accordingly ignore a difference of 3 while setting. Problem not detected earlier, communicationfuncs.c.Solution: commented out a part from receiveModule
git-svn-id: file:///afs/psi.ch/project/sls_det_software/svn/slsDetectorSoftware@215 951219d9-93cf-4727-9268-0efd64621fa3
This commit is contained in:
parent
d934111c2a
commit
f686a575b6
@ -5,7 +5,7 @@
|
||||
|
||||
CROSS = bfin-uclinux-
|
||||
CC = $(CROSS)gcc
|
||||
CFLAGS += -Wall -DMCB_FUNCS# -DVERBOSE -DVERYVERBOSE #-DVIRTUAL
|
||||
CFLAGS += -Wall -DMCB_FUNCS #-DVERBOSE -DVERYVERBOSE #-DVIRTUAL
|
||||
|
||||
|
||||
PROGS= gotthardDetectorServer
|
||||
|
@ -431,7 +431,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
|
||||
free(dacptr);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
/*
|
||||
if (nadcdiff<=0) {
|
||||
ts+=receiveDataOnly(file_des,myMod->adcs, sizeof(double)*nAdcs);
|
||||
#ifdef VERBOSE
|
||||
@ -444,8 +444,7 @@ int receiveModule(int file_des, sls_detector_module* myMod) {
|
||||
ts+=receiveDataOnly(file_des,adcptr, sizeof(double)*nadcdiff);
|
||||
free(adcptr);
|
||||
return FAIL;
|
||||
}
|
||||
|
||||
}*/
|
||||
if (nchipdiff<=0) {
|
||||
ts+=receiveDataOnly(file_des,myMod->chipregs, sizeof(int)*nChips);
|
||||
#ifdef VERBOSE
|
||||
|
@ -1187,6 +1187,8 @@ int setDACRegister(int idac, int val, int imod) {
|
||||
return -1;
|
||||
break;
|
||||
}
|
||||
//saving only the msb
|
||||
val=val>>2;
|
||||
|
||||
off=(idac%3)*10;
|
||||
mask=~((0x3ff)<<off);
|
||||
@ -1198,9 +1200,12 @@ int setDACRegister(int idac, int val, int imod) {
|
||||
bus_w(addr+(imod<<SHIFTMOD),reg);
|
||||
}
|
||||
val=(bus_r(addr+(imod<<SHIFTMOD))>>off)&0x3ff;
|
||||
//since we saved only the msb
|
||||
val=val<<2;
|
||||
|
||||
//val=(bus_r(addr)>>off)&0x3ff;
|
||||
|
||||
|
||||
|
||||
#ifdef VERBOSE
|
||||
printf("Dac %d module %d register is %d\n\n",idac,imod,val);
|
||||
#endif
|
||||
|
@ -816,6 +816,7 @@ int initDACs(int* v,int imod)
|
||||
#endif
|
||||
int iaddr;
|
||||
// sDac=0;
|
||||
|
||||
for (iaddr=0; iaddr<8; iaddr++) {
|
||||
clearDACSregister(imod);
|
||||
if (v[iaddr]>=0) {
|
||||
|
@ -990,8 +990,8 @@ int set_dac(int file_des) {
|
||||
strcpy(mess,"Weird value read back or it has not been set yet\n");
|
||||
else
|
||||
ret=OK;
|
||||
}
|
||||
else if (retval==val || val==-1)
|
||||
}//since v r saving only msb
|
||||
else if ((retval-val)<=3 || val==-1)
|
||||
ret=OK;
|
||||
}
|
||||
#endif
|
||||
@ -1416,7 +1416,7 @@ int set_module(int file_des) {
|
||||
printf("Setting module\n");
|
||||
#endif
|
||||
ret=receiveModule(file_des, &myModule);
|
||||
|
||||
|
||||
|
||||
if (ret>=0)
|
||||
ret=OK;
|
||||
|
Loading…
x
Reference in New Issue
Block a user