|
@@ -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;
|