Changeset 645 in Sophya for trunk/Poubelle/archediab.old/archediab.sources/c
- Timestamp:
- Nov 25, 1999, 2:35:30 PM (26 years ago)
- Location:
- trunk/Poubelle/archediab.old/archediab.sources/c
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Poubelle/archediab.old/archediab.sources/c/bit_block.c
r643 r645 9 9 #include "archeops.h" 10 10 #include "bit_block.h" 11 #include "choix_param.h" 12 #include "structure.h" 13 #include "tm.h" 14 #include "tache.h" 15 #include "bolo.h" 16 #include "carte_acqui.h" 17 #include "carte_pci.h" 18 11 19 12 13 20 #define cadence_taux 16 21 #define mode_acquisition 0x00 //0xff en mode inverse, 0x00 en mode normal 14 22 unsigned long buffer; 15 23 int llgg,somme,type_du_block,numero; 16 24 int deb; /*deb vaut zero si aucun debut n'a encore ete trouve*/ 17 25 int compteur; 18 int cpt_cherche_debut; 26 int cpt_cherche_debut; 27 unsigned long taux; 28 unsigned long Nvide, Nplein; 19 29 def_long_block 20 30 … … 25 35 { 26 36 int i,m,bit; 37 27 38 // unsigned char bit; /*c'est le bit lu*/ 28 39 29 bit=un_bit() ;40 bit=un_bit()^mode_acquisition; 30 41 switch(bit) 31 42 { … … 38 49 } 39 50 51 40 52 compteur++; 41 53 i=compteur%32; 42 54 43 55 56 44 57 45 58 switch(deb) … … 108 121 if(pbk->mot[m] == fin_block_mesure) 109 122 { 123 /* 110 124 if(calcul_somme_block(pbk,llgg)!=somme) 111 125 { 112 126 ecrit_erreur_bit(erreur_somme); 113 127 114 /*on continue quand meme*/128 115 129 } 130 */ 131 116 132 // else ecrit_erreur_bit(bloc_correct); 117 133 118 134 deb=0; 119 135 Nplein=compteur+1; 136 compteur=0; 137 //Calcul du taux de remplissage 138 taux=taux+(((0xffff-taux)*Nplein)>>cadence_taux); 139 tt->nb_lec_fofo_ext=((taux*1000)>>cadence_taux); 120 140 return(lit_bit_un_block); 121 141 … … 129 149 } 130 150 151 152 153 131 154 132 155 } 133 } 156 157 } 158 159 134 160 } 135 161 break; … … 138 164 default : 139 165 140 166 if(compteur>1000) 167 { 168 Nvide=compteur; 169 compteur=0; 170 taux=taux-((taux*Nvide)>>cadence_taux); 171 tt->nb_lec_fofo_ext=((taux*1000)>>cadence_taux); 172 } 141 173 if(buffer==debut_block_mesure) 142 174 { 143 175 deb=1; 176 Nvide=compteur-32; 144 177 compteur=31; 145 178 pbk->debut=buffer; -
trunk/Poubelle/archediab.old/archediab.sources/c/dilution.c
r643 r645 208 208 209 209 210 #define c(j,i) (1e-4*(double)parametr.nom_coef[parametr.bolo[j].numero_nom_coef].coef[i]) 210 211 211 212 // les temperatures sur les cartes modifiées 212 213 { 213 double I,V,R[ 4];214 double I,V,R[8],llR; 214 215 int j,k; 215 216 def_gains; 216 217 k=0; 218 217 219 for(j=0;(j<nb_max_bolo) && (k<4);j++) 218 220 { … … 222 224 V=0.001*bol_micro_volt(blk->temperature[k],(double)parametr.bolo[j].bolo_gain*gain_ampli(gg->reglage.bolo[j])); 223 225 if(I>0.0000001) R[k]=V/I; else R[k]=0; // R en 224 k++; 226 //------ calcul de l'etalonnage en temperature des cartes temperature simplifiées 227 // j=numero de bebo T[k] = R[k+4] en Kelvin 228 if ((R[k]-c(j,6))>1.) 229 {if((log(R[k]-c(j,6))-c(j,0))>0.001) llR= log(log(R[k]-c(j,6))-c(j,0)) ; else llR=0;} 230 else llR=0; 231 R[k+4] = exp( c(j,1) + c(j,2)* llR + c(j,3)* llR* llR + c(j,4)* llR* llR* llR + c(j,5)* llR* llR* llR* llR) ; 232 if(R[k+4]>9999) R[k+4]=9999; 233 k++; 225 234 } 226 235 } 227 236 228 if(R[0]<90.) ecritD(fenetre_dilution,dil_temp,"germ= %6.2f 4K=%5.1f 1.6K=%5.1f 10K=%5.1f",R[0],R[1],R[2],R[3]); 229 else ecritD(fenetre_dilution,dil_temp,"germ= %6.3fk 4K=%5.1f 1.6K=%5.1f 10K=%5.1f",R[0]*0.001,R[1],R[2],R[3]); 237 238 if(R[0]<90.) ecritD(fenetre_dilution,dil_temp 239 , "ge=%6.2f 4K=%6.2f 1.6K=%6.2f 10K=%6.2f\rge= %6.3fK 4K=%6.2fK 1.6K=%6.2fK 10K=%6.2fK " 240 ,R[0],R[1],R[2],R[3],R[4],R[5],R[6],R[7]); 241 else ecritD(fenetre_dilution,dil_temp 242 ,"ge=%6.3fk 4K=%6.2f 1.6K=%6.2f 10K=%6.2f\rge= %6.3fmK 4K=%6.2fK 1.6K=%6.2fK 10K=%6.2fK " 243 ,R[0]*0.001,R[1],R[2],R[3],R[4]*1000.,R[5],R[6],R[7]); 244 245 230 246 if(litD(fenetre_dilution,dil_trace_tempe,0))// trace les sondes de niveau helium 231 247 { … … 240 256 strcpy(graph->xtitre,"minutes"); 241 257 } 242 tracen(fenetre_temperature_dil, 4,minutes,R);258 tracen(fenetre_temperature_dil,8,minutes,R); 243 259 } 244 260 } -
trunk/Poubelle/archediab.old/archediab.sources/c/tache_archeops_bit2.c
r643 r645 23 23 // 24 24 // 25 // lit directement les blocks recu tsur la fifo et les envoie au programme principal25 // lit directement les blocks recus sur la fifo et les envoie au programme principal 26 26 // 27 27 … … 34 34 35 35 //***************************************************************************************** 36 unsigned long N_total_bits,M; 37 unsigned short Max,Min; 36 38 37 39 void init_tache(void) … … 69 71 70 72 71 char un_bit( void)73 char un_bit() 72 74 { 73 75 static int i; 74 76 static unsigned long RR; 77 unsigned short Val; 78 75 79 lit_carte; if(rien_a_lire) return(bit_vide); // fifo vide -> retour -> sort du while 80 81 N_total_bits++; 82 Val=((RR>>1) & 0x3f); //permet de lire les bits de temps dans RR 83 84 //Calcul de la nouvelle moyenne glissee du temps 85 M=M-(M>>16)+(Val<<8); 86 87 88 //Calcul du Max 89 if(N_total_bits==0) Max=Val; //initialisation au premier passage 90 if(Val>Max) Max=Val; //changement de maximum 91 if((N_total_bits%60000)==0) 92 { 93 Max=Max-1; //Diminution tous les 60000 bits 94 N_total_bits=0; 95 } 96 97 //Calcul du Min 98 if(N_total_bits==0) Min=Val; //initialisation au premier passage 99 if(Val<Min) Min=Val; //changement de minimum 100 if((N_total_bits%60000)==0) Min=Min+1; //Augmentation tous les 60000 bits 101 //tt->nb_lec_fofo_ext=M; 102 103 104 76 105 //if( RR & 1 ) return(bit_un); 77 106 //else return(bit_zero); 78 107 if( RR & 1 ) return(bit_zero); 79 108 else return(bit_un); 109 80 110 } 81 111 … … 135 165 } 136 166 if(lec_fifo > tt->nb_lec_fofo_int) tt->nb_lec_fofo_int=lec_fifo; 137 if(!tt->nb_lec_fofo_ext) {tt->nb_lec_fofo_ext=tt->nb_lec_fofo_int;tt->nb_lec_fofo_int=0;}167 //if(!tt->nb_lec_fofo_ext) {tt->nb_lec_fofo_ext=tt->nb_lec_fofo_int;tt->nb_lec_fofo_int=0;} 138 168 139 169 } -
trunk/Poubelle/archediab.old/archediab.sources/c/telecommande.c
r643 r645 217 217 case tc_dir_reset_epld : //printf("tc_reset_epld:\n"); 218 218 219 for(j=0;j<14;j++) tc_char(j); 219 // for(j=0;j<14;j++) tc_char(j); 220 for(j=0;j<15;j++) tc_char(j); // reset epld+transputer 220 221 tc_char(1);tc_char(1); 221 222 tc_char(0x00);tc_char(0x00); // synchro
Note:
See TracChangeset
for help on using the changeset viewer.