278uint8_t iii,canale, indice;
279uint8_t
volatile tx_data_buffer[8],fai_fai=1;
284 for(iii=0;iii < 8;iii++){
286 tx_data_buffer[iii]=
tx_data[iii];
296 if ( preamplifier_attesa_tra_le_misure <100) preamplifier_attesa_tra_le_misure=100;
297 if (preamplifier_attesa_tra_le_misure > 10000) preamplifier_attesa_tra_le_misure=10000;
302 preamplifier_canali_da_regolare_old=preamplifier_canali_da_regolare;
327 uint8_t dati_scambio[4] , scheda=scheda_su_scheda_giu;
328 for( canale=0;canale<6;canale++){
331 if(dati_scambio[0] ==0){
333 preamplifier_coarse_step_trimmer[canale+scheda]=*(int32_t *)dati_scambio;
335 preamplifier_fine_step_trimmer[canale+scheda]= *(int32_t *)dati_scambio;
337 preamplifier_error_voltage_at_the_moment[canale+scheda]= preamplifier_coarse_step_trimmer[canale+scheda] >>1;
343 for( canale=0;canale<12;canale++){
344 preamplifier_SAR_ini[canale].starting_value =128;
345 preamplifier_SAR_ini[canale].starting_exp_value[0]=7;
346 preamplifier_SAR_ini[canale].starting_exp_value[1]=7;
349 for( canale=0;canale<6;canale++){
350 if((preamplifier_canali_da_regolare >> canale) & 1){
361 for( canale=0;canale<6;canale++){
362 if((preamplifier_canali_da_regolare >> canale) & 1){
364 termalizzazione_fatta[canale + scheda_su_scheda_giu]=0;
373 uint8_t ri_misuriamo=0;preamplifier_canali_da_regolare_old=preamplifier_canali_da_regolare;
374 for( canale=0;canale<6;canale++){
375 if((preamplifier_canali_da_regolare_old >> canale) & 1){
376 if (termalizzazione_fatta[canale + scheda_su_scheda_giu]==0){
377 preamplifier_canali_da_regolare=1 <<canale;
399 for(iii=0;iii < 8 ;iii++){
400 tx_data[iii]= tx_data_buffer[iii];
402 tx_data[6] = preamplifier_canali_da_regolare;
404 for( iii=0;iii<6;iii++){
405 somma += preamplifier_error_voltage_at_PGA_gain[iii+scheda_su_scheda_giu];
407 somma = somma / 6000;
408 if( somma >255) somma=255;
volatile uint16_t ADC_medie_per_misura
the number of ADC readings to average, the maximum is 400
uint8_t tx_data[8]
Transmission data vector.
#define detector_bit_per_storing_startup
#define detector_bit_per_storing_user_state
#define detector_bit_recall_user_defined
#define detector_bit_recall_startup
#define detector_bit_store_state_in_user_as_it_is
#define detector_offset_from_half_scale
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.
volatile uint16_t LED_rosso_fondo_scala
void EPROM_lettura_M24C32_64(uint8_t scheda_su_scheda_giu_, uint8_t mainboard_postmainboard, uint8_t canale, short indirizzo_memoria, uint8_t *dati_letti)
Read from preamplifier and on-board flashes.
void EPROM_store_recover_state_M24C32_64(uint8_t scheda_su_scheda_giu, uint8_t canali_da_regolare, uint8_t set_1_store_0, uint8_t startup_1_user_0)
Store the system state or recover and apply the system state.
@ Memory_preamplifier_slope_calibration_ON_0_OFF_ff
slope trimmer active if zero
@ Memory_preamplifier_address_fine_trimmer_slope_offset
fine slope for trimmer offset
@ Memory_preamplifier_address_coarse_trimmer_slope_offset
coarse slope for trimmer offset
void preamplifier_trova_il_guess(uint8_t trimmer_da_usare)
static void preamplifier_normalize_gain_offset_error(uint8_t scheda_su_scheda_giu_)
The ouput offset will be set at the value that was given with the instr_ouput_offset_we_want_to_set i...
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_...
void preamplifier_determina_trimmer_therma_comp(uint8_t scheda_su_scheda_giu, uint8_t canale, uint8_t valore_previsto_trimmer_offset, uint8_t solo_recupero_default_comp_se_1)
This function determines and set the thermal compensation trimmer.
void preamplifier_aggiusta_offset_SAR(void)
This function provide the output offset with the standard SAR method.
#define preamplifier_scrivi_il_trimmer
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
volatile int8_t vettore_istruzioni[8]
This is a copy of the received 8 bytes from the CAN.