This function provide the output offset with the standard SAR method.
568 uint8_t target_raggiunto_1_non_raggiunto_0[]={0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0};
569 int32_t ADC_misura_fatta_prov,ADC_misura_fatta_prov_vet[200];
570 uint16_t iii, media_prov;
572 if( scheda_su_scheda_giu>=1) scheda_su_scheda_giu=6;
585 preamplifier_canali_da_regolare_old= preamplifier_canali_da_regolare;
586 for(indice_trimmer=0; indice_trimmer<2;indice_trimmer++){
588 if( indice_trimmer) {
589 preamplifier_canali_da_regolare = preamplifier_canali_da_regolare_old;
590 for(canale=0; canale<6;canale++){
591 indice= canale + scheda_su_scheda_giu;
592 preamplifier_error_voltage_at_the_moment[indice]= preamplifier_error_voltage_at_PGA_gain[indice] / PGA_settled_gain_old[indice];
593 target_raggiunto_1_non_raggiunto_0[indice]=0;
598 for(scalata=0; scalata<8; scalata++){
602 confronto= 1 << (7-scalata);
603 for(canale=0; canale<6;canale++){
604 indice= canale + scheda_su_scheda_giu;
605 if( (preamplifier_SAR_ini[indice].starting_exp_value[indice_trimmer] >= (7-scalata))){
606 if( (preamplifier_canali_da_regolare >> canale) & 1){
615 for(canale=0; canale<6;canale++){
616 indice= canale + scheda_su_scheda_giu;
617 if( (preamplifier_SAR_ini[indice].starting_exp_value[indice_trimmer] >= (7-scalata)) ){
618 if( (preamplifier_canali_da_regolare >> canale) & 1){
619 if( target_raggiunto_1_non_raggiunto_0[indice]==0){
622 if( ( ADC_misura_fatta - preamplifier_Output_offset_target_at_the_moment[indice] ) < \
623 ( - preamplifier_error_voltage_at_the_moment[indice]) ){
625 target_raggiunto_1_non_raggiunto_0[indice]=0;
626 ADC_misura_fatta_old[indice]= ADC_misura_fatta;
627 }
else if ( ( ADC_misura_fatta - preamplifier_Output_offset_target_at_the_moment[indice] ) < \
630 target_raggiunto_1_non_raggiunto_0[indice]=1;
631 preamplifier_canali_da_regolare -= 1 << canale ;
632 ADC_misura_fatta_old[indice]= ADC_misura_fatta;
633 }
else if ( ( ADC_misura_fatta - preamplifier_Output_offset_target_at_the_moment[indice] ) >\
634 ( preamplifier_error_voltage_at_the_moment[indice])){
636 target_raggiunto_1_non_raggiunto_0[indice]=0;
641 }
else if ( ( ADC_misura_fatta - preamplifier_Output_offset_target_at_the_moment[indice] ) >\
644 target_raggiunto_1_non_raggiunto_0[indice]=1;
645 ADC_misura_fatta_old[indice]= ADC_misura_fatta;
646 preamplifier_canali_da_regolare -= 1 << canale ;
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...
void preamplifier_trova_il_guess(uint8_t trimmer_da_usare)
void preamplifier_ritorno_al_gain_originale(uint8_t scalata, uint8_t indice_trimmer, uint8_t *target_raggiunto_1_non_raggiunto_0)
This function sets the original gain when a few LSb have to be determined. The umber of bits is bit_t...
void preamplifier_aggiusta_offset_SAR(void)
This function provide the output offset with the standard SAR method.
#define preamplifier_scrivi_il_trimmer
void Aspetta_tanti_ms(int millisecondi)
The timing function.
uint8_t volatile contenuto_trimmer_preamplifier[12][4]
void preamplifier_scrittura_lettura_trimmer(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t trimmer, uint8_t valore, uint8_t scrivi_1_leggi_0)
Setting the value of any trimmer for preamplifier trimmer, the contents of the trimmers are stored in...
#define trimmer_fine_offset
#define trimmer_coarse_offset