CROSS Technical Documentation User Manual and Technical Doc.
INFN Milano Bicocca
Loading...
Searching...
No Matches

◆ instr_PGA_gain_set_function()

void instr_PGA_gain_set_function ( void  )

PGA gain set.

Returns
No Parameters, the actual result is sent to the CAN bus output throught tx_data.
331 #define PGA_mantieni_loffset 1
332
333 uint8_t canale_, preamplifier_canali_da_regolare= (vettore_istruzioni[6] & 0x3F),iii,istruzione_old[8];
334 uint8_t PGA_gain_to_set= vettore_istruzioni[byte_istr_dati_0];
335 uint8_t scheda_su_scheda_giu= ((vettore_istruzioni[6] >> 7) & 1)*6;
336 uint8_t offset_maintained= vettore_istruzioni[istruzione_byte_3];
337 uint8_t preamplifier_externalADC_1_onboardADC_0=0;
338
339 if (vettore_istruzioni[5] & PGA_mantieni_loffset){
340 //ATTENZIONE: se offset_maintained allora bisogna:
341 for (iii =0; iii < 7;iii++){//conserviamo l'sitruzione
342 istruzione_old[iii] = vettore_istruzioni[iii];
343 }
344 // -leggere l'offset prima di cambiare: questo sar\'a il target
345 for ( canale_ =0; canale_<6; canale_++){
346 preamplifier_Output_offset_target[scheda_su_scheda_giu + canale_] = ADC_misura_differenziale_con_media_generico(scheda_su_scheda_giu,preamplifier_externalADC_1_onboardADC_0,canale_,1);
347 }
348 //Impostiamo ilo futuro valore del guadagno nel vettore, poi il guadagno verr\'a messo ad 1 nella funzione di regolazione per evitare saturazioni
349 for ( canale_ =0; canale_<6; canale_++){
350 if( (preamplifier_canali_da_regolare >> canale_) & 1){
351 PGA_settled_gain[canale_ + scheda_su_scheda_giu]=PGA_gain_to_set;
352 }
353 }
354 preamplifier_attesa_tra_le_misure = vettore_istruzioni[3];
355 if( preamplifier_attesa_tra_le_misure==0) preamplifier_attesa_tra_le_misure=500;
356 preamplifier_canali_da_regolare_old = preamplifier_canali_da_regolare ; //serve per la funzione sotto
357 // -determinare i nuovi parametri di offset
358
360 vettore_istruzioni[2]=istruzione_old[2];vettore_istruzioni[3]=0;
361 if(vettore_istruzioni[2] ==0) vettore_istruzioni[2]=istruzione_old[2];
363 vettore_istruzioni[4]=istruzione_old[3];
365 vettore_istruzioni[5]=istruzione_old[4];
366 if(vettore_istruzioni[5]==0) vettore_istruzioni[5] =50;
367 vettore_istruzioni[6]=istruzione_old[6];
369 instr_output_offset_to_be_set_function(); //Lanciamo la funzione di aggiustamento offset, che alla fine imposter\'a i guadagni corretti finali
370 for (iii =0; iii < 7;iii++){//Ritorniamo all'istruzione originaria
371 vettore_istruzioni[iii] = istruzione_old[iii];
372 }
373
374 }else{
375 ERROR_codifica_errore(0,0,0,0); //Reset_ch0 errori
376 //Cambiamo il guadagno al nuovo valore, caso in cui non ci preoccupiamo dell'offset
377 for(canale_=0; canale_<6;canale_++){
378 if( ( preamplifier_canali_da_regolare >> canale_) &1 ){
379 // -cambiare il guadagno
380 PGA_GAIN_CROSS( scheda_su_scheda_giu, canale_, PGA_gain_to_set ) ;
381 }
382 }
383}
384
386}
int32_t ADC_misura_differenziale_con_media_generico(uint8_t scheda_su_scheda_giu_, uint8_t preamplifier_externalADC_1_onboardADC_0, uint8_t nodo_da_misurare, uint8_t differenziale_1_single_0)
This function sets the original gain when a few LSb have to be determined. The umber of bits is bit_t...
Definition: Adc.c:899
@ instr_output_offset_to_be_set
Adjust the ouput voltage that was previously set at instr_ouput_offset_we_want_to_set.
void PGA_GAIN_CROSS(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t PGA_gain_to_set)
Here the 2 digital signals from the trimmer are exploited to set the gain of the input stage of the P...
Definition: DAC_PGA.c:109
uint8_t PGA_settled_gain[12]
PGA set gain.
Definition: DAC_PGA.c:95
void Error_imposta_la_istruzione(void)
Function to be located at the end of every instruction to mark the error, if any.
void ERROR_codifica_errore(uint8_t scheda_su_scheda_giu, unsigned char error_addres, unsigned char code_to_shift, uint8_t reset_count_se_0)
If an error is found its flag is codified here.
void instr_PGA_gain_set_function(void)
PGA gain set.
Definition: Istruzioni.c:330
#define istruzione_byte_3
Definition: Istruzioni.h:23
#define byte_istr_dati_0
Definition: Istruzioni.h:25
void instr_output_offset_to_be_set_function(void)
The detector bias will be set at the value set with the function instr_detector_Vbias_we_want_to_set_...
int32_t preamplifier_Output_offset_target[12]
Offset target values.
volatile int8_t vettore_istruzioni[8]
This is a copy of the received 8 bytes from the CAN.

Definition at line 330 of file Istruzioni.c.