|  | @@ -217,9 +217,15 @@ void ai_processing(void)
 | 
	
		
			
				|  |  |          adc_meas_two_channels(&settings.ai[i], &settings.ai[i + 6], 
 | 
	
		
			
				|  |  |                                &adc_com_raw_data[i], &adc_com_raw_data[i + 6]);
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | -        adc_com_data[i]     = 
 | 
	
		
			
				|  |  | -        adc_com_data[i + 6] = 
 | 
	
		
			
				|  |  | +        // ---------------------------------------------------------------------
 | 
	
		
			
				|  |  | +        // Фильтрованные данные
 | 
	
		
			
				|  |  | +        adc_com_data[i] = (float)adc_com_raw_data[i]*VOLTAGE_FACTOR*
 | 
	
		
			
				|  |  | +                          settings.ai[i].k_factor + settings.ai[i].b_factor;
 | 
	
		
			
				|  |  |          
 | 
	
		
			
				|  |  | +        adc_com_data[i + 6] = (float)adc_com_raw_data[i + 6]*VOLTAGE_FACTOR*
 | 
	
		
			
				|  |  | +                              settings.ai[i + 6].k_factor + settings.ai[i + 6].b_factor;
 | 
	
		
			
				|  |  | +          
 | 
	
		
			
				|  |  | +        // ---------------------------------------------------------------------
 | 
	
		
			
				|  |  |          // Фильтрация. Скользящее среднее. Только для отладки.
 | 
	
		
			
				|  |  |          adc_com_fil_data[i]     = average_int(&average_filter[i], adc_com_raw_data[i]);
 | 
	
		
			
				|  |  |          adc_com_fil_data[i + 6] = average_int(&average_filter[i + 6], adc_com_raw_data[i + 6]);
 | 
	
	
		
			
				|  | @@ -233,7 +239,7 @@ void ai_processing(void)
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -#if 1    
 | 
	
		
			
				|  |  | +#if 0    
 | 
	
		
			
				|  |  |      printf("end\r\n");
 | 
	
		
			
				|  |  |      adc_print_data();
 | 
	
		
			
				|  |  |      //adc_print_data_extend();
 | 
	
	
		
			
				|  | @@ -249,6 +255,7 @@ void adc_meas_two_channels(ai_t *one, ai_t *two, uint16_t *out_one, uint16_t *ou
 | 
	
		
			
				|  |  |      // 1 - ый канал
 | 
	
		
			
				|  |  |      if (one->state == 0) {
 | 
	
		
			
				|  |  |          DBG printf("[one] channel name: %u off\r\n", one->name);
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  |      }
 | 
	
		
			
				|  |  |      else {
 | 
	
		
			
				|  |  |          DBG printf("[one] channel name: %u on\r\n", one->name);
 | 
	
	
		
			
				|  | @@ -306,27 +313,24 @@ void adc_print_data(void)
 | 
	
		
			
				|  |  |      printf("\033[2J"); 
 | 
	
		
			
				|  |  |      printf("\033[H");  
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | +#if 1    
 | 
	
		
			
				|  |  | +    printf("AN_INP_1:  0x%X, %.3f\r\n", adc_com_raw_data[0], adc_com_data[0]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_2:  0x%X, %.3f\r\n", adc_com_raw_data[1], adc_com_data[1]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_3:  0x%X, %.3f\r\n", adc_com_raw_data[2], adc_com_data[2]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_4:  0x%X, %.3f\r\n", adc_com_raw_data[3], adc_com_data[3]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_5:  0x%X, %.3f\r\n", adc_com_raw_data[4], adc_com_data[4]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_6:  0x%X, %.3f\r\n", adc_com_raw_data[5], adc_com_data[5]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_7:  0x%X, %.3f\r\n", adc_com_raw_data[6], adc_com_data[6]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_8:  0x%X, %.3f\r\n", adc_com_raw_data[7], adc_com_data[7]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_9:  0x%X, %.3f\r\n", adc_com_raw_data[8], adc_com_data[8]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_10: 0x%X, %.3f\r\n", adc_com_raw_data[9], adc_com_data[9]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_11: 0x%X, %.3f\r\n", adc_com_raw_data[10],adc_com_data[10]);
 | 
	
		
			
				|  |  | +    printf("AN_INP_12: 0x%X, %.3f\r\n", adc_com_raw_data[11],adc_com_data[11]);
 | 
	
		
			
				|  |  |      
 | 
	
		
			
				|  |  | -    printf("AN_INP_1: 0x%X, %.3f\r\n", adc_com_raw_data[0], (double)adc_com_raw_data[0]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -            
 | 
	
		
			
				|  |  | -#if 0    
 | 
	
		
			
				|  |  | -    printf("AN_INP_1: 0x%X, %.3f\r\n", adc_com_raw_data[0], (double)adc_com_raw_data[0]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_2: 0x%X, %f\r\n", adc_com_raw_data[1], (double)adc_com_raw_data[1]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_3: 0x%X, %f\r\n", adc_com_raw_data[2], (double)adc_com_raw_data[2]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_4: 0x%X, %f\r\n", adc_com_raw_data[3], (double)adc_com_raw_data[3]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_5: 0x%X, %f\r\n", adc_com_raw_data[4], (double)adc_com_raw_data[4]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_6: 0x%X, %f\r\n", adc_com_raw_data[5], (double)adc_com_raw_data[5]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_7: 0x%X, %f\r\n", adc_com_raw_data[6], (double)adc_com_raw_data[6]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_8: 0x%X, %f\r\n", adc_com_raw_data[7], (double)adc_com_raw_data[7]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_9: 0x%X, %f\r\n", adc_com_raw_data[8], (double)adc_com_raw_data[8]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_10: 0x%X, %f\r\n",adc_com_raw_data[9], (double)adc_com_raw_data[9]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_11: 0x%X, %f\r\n",adc_com_raw_data[10],(double)adc_com_raw_data[10]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("AN_INP_12: 0x%X, %f\r\n",adc_com_raw_data[11],(double)adc_com_raw_data[11]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | -    printf("V_ISO_CL: 0x%X, %f\r\n", adc_add_raw_data[0], (double)adc_add_raw_data[0]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("V_ISO: 0x%X, %f\r\n",    adc_add_raw_data[1], (double)adc_add_raw_data[1]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("CRNT_LIM_U_BFR_R: 0x%X, %f\r\n", adc_add_raw_data[2],(double)adc_add_raw_data[2]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | -    printf("CRNT_LIM_U_ABFR_R: 0x%X, %f\r\n",adc_add_raw_data[3],(double)adc_add_raw_data[3]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | +    printf("V_ISO_CL:  0x%X, %f\r\n", adc_add_raw_data[0], (double)adc_add_raw_data[0]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | +    printf("V_ISO   :  0x%X, %f\r\n", adc_add_raw_data[1], (double)adc_add_raw_data[1]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | +    printf("CRNT_LIM_U_BFR_R : 0x%X, %f\r\n", adc_add_raw_data[2],(double)adc_add_raw_data[2]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  | +    printf("CRNT_LIM_U_ABFR_R: 0x%X, %f\r\n", adc_add_raw_data[3],(double)adc_add_raw_data[3]*VOLTAGE_FACTOR);
 | 
	
		
			
				|  |  |  #endif
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -425,6 +429,8 @@ void ai_set(void)
 | 
	
		
			
				|  |  |              settings.ai[i].state = ((settings.ai_state_bits >> i) & 1);
 | 
	
		
			
				|  |  |              if (settings.ai[i].state == 0) {
 | 
	
		
			
				|  |  |                  leds[ai_input_led[i]].state = LED_OFF;
 | 
	
		
			
				|  |  | +                adc_com_raw_data[i] = 0;
 | 
	
		
			
				|  |  | +                adc_com_data[i] = 0;                
 | 
	
		
			
				|  |  |              }
 | 
	
		
			
				|  |  |              else {
 | 
	
		
			
				|  |  |                  leds[ai_input_led[i]].state = LED_ON;
 |