|
@@ -28,12 +28,23 @@ uint16_t ai_mode;
|
|
|
|
|
|
uint16_t ai_alarm;
|
|
|
|
|
|
+#if 1
|
|
|
ANALOG_IN_t channel_name[NUMBER_ADC_CH] = {AN_INP_1, AN_INP_2, AN_INP_3,
|
|
|
AN_INP_4, AN_INP_5, AN_INP_6,
|
|
|
V_ISO_CL, V_ISO,
|
|
|
AN_INP_7, AN_INP_8, AN_INP_9,
|
|
|
AN_INP_10, AN_INP_11, AN_INP_12,
|
|
|
CRNT_LIM_U_BFR_R, CRNT_LIM_U_ABFR_R};
|
|
|
+#endif
|
|
|
+
|
|
|
+#if 0
|
|
|
+ANALOG_IN_t channel_name[NUMBER_ADC_CH] = {AN_INP_1, AN_INP_2, AN_INP_3,
|
|
|
+ AN_INP_4, AN_INP_5, AN_INP_6,
|
|
|
+ AN_INP_7, AN_INP_8, AN_INP_9,
|
|
|
+ AN_INP_10, AN_INP_11, AN_INP_12,
|
|
|
+ V_ISO_CL, V_ISO,
|
|
|
+ CRNT_LIM_U_BFR_R, CRNT_LIM_U_ABFR_R};
|
|
|
+#endif
|
|
|
|
|
|
uint16_t adc_raw_data[NUMBER_ADC_CH];
|
|
|
|
|
@@ -41,15 +52,46 @@ led_t ai_alarm_led[12] = {IO_1_R, IO_2_R, IO_3_R, IO_4_R,
|
|
|
IO_5_R, IO_6_R, IO_7_R, IO_8_R,
|
|
|
IO_9_R, IO_10_R, IO_11_R, IO_12_R};
|
|
|
|
|
|
+led_t ai_input_led[12] = {IO_1_G, IO_2_G, IO_3_G, IO_4_G,
|
|
|
+ IO_5_G, IO_6_G, IO_7_G, IO_8_G,
|
|
|
+ IO_9_G, IO_10_G, IO_11_G, IO_12_G};
|
|
|
+
|
|
|
+uint16_t ai_state_bit;
|
|
|
+
|
|
|
+
|
|
|
|
|
|
|
|
|
|
|
|
void ai_init(void)
|
|
|
{
|
|
|
- sh_init();
|
|
|
- ai_set_meas_mode();
|
|
|
- ai_ext_sens_power(settings.ext_sens_power);
|
|
|
- ai_adc_init();
|
|
|
+
|
|
|
+ ai_led_update();
|
|
|
+
|
|
|
+
|
|
|
+ sh_init();
|
|
|
+
|
|
|
+
|
|
|
+ ai_set_meas_mode();
|
|
|
+
|
|
|
+
|
|
|
+ ai_ext_sens_power(settings.ext_sens_power);
|
|
|
+
|
|
|
+
|
|
|
+ ai_adc_init();
|
|
|
+}
|
|
|
+
|
|
|
+
|
|
|
+void ai_led_update(void)
|
|
|
+{
|
|
|
+ for (int i = 0; i < AI_NUMBER; i++)
|
|
|
+ {
|
|
|
+ if (settings.ai[i].state) {
|
|
|
+ leds[ai_input_led[i]].state = LED_ON;
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ leds[ai_input_led[i]].state = LED_OFF;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
|
|
@@ -151,10 +193,21 @@ bool ai_adc_init(void)
|
|
|
|
|
|
void ai_processing(void)
|
|
|
{
|
|
|
+#if 0
|
|
|
for (uint8_t i = 0; i < 8; i++)
|
|
|
{
|
|
|
adc_get_two_channles(channel_name[i], channel_name[i + 8]);
|
|
|
}
|
|
|
+#endif
|
|
|
+
|
|
|
+ for (uint8_t i = 0; i < 6; i++)
|
|
|
+ {
|
|
|
+ adc_get_two_channles(channel_name[i], channel_name[i + 8]);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
#if 0
|
|
|
printf("end\r\n");
|
|
|
adc_print_data();
|
|
@@ -165,6 +218,10 @@ void ai_processing(void)
|
|
|
|
|
|
void adc_get_two_channles(ANALOG_IN_t one, ANALOG_IN_t two)
|
|
|
{
|
|
|
+
|
|
|
+ printf("One: %u, two: %u\r\n", one, two);
|
|
|
+
|
|
|
+#if 0
|
|
|
ai_connect_channel(one);
|
|
|
vTaskDelay(1);
|
|
|
MS5192T_SetChannel(MS5192T_CH_AIN1P_AIN1M);
|
|
@@ -174,8 +231,13 @@ void adc_get_two_channles(ANALOG_IN_t one, ANALOG_IN_t two)
|
|
|
vTaskDelay(1);
|
|
|
MS5192T_SetChannel(MS5192T_CH_AIN2P_AIN2M);
|
|
|
adc_raw_data[two] = MS5192T_SingleConversion();
|
|
|
+#endif
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+void adc_get_add_channels(void)
|
|
|
+{}
|
|
|
+
|
|
|
|
|
|
void adc_print_data(void)
|
|
|
{
|
|
@@ -206,7 +268,7 @@ void adc_task(void *params)
|
|
|
{
|
|
|
ai_alarm = sh_ai_mode(ai_mode);
|
|
|
|
|
|
- ai_processing();
|
|
|
+
|
|
|
|
|
|
ai_leds_processing();
|
|
|
|
|
@@ -267,30 +329,20 @@ void ai_connect_channel(uint8_t channel)
|
|
|
|
|
|
void ai_set(void)
|
|
|
{
|
|
|
- for (int i = 0; i < AI_NUMBER; i++)
|
|
|
+ for (int i = 0; i < AI_NUMBER; i++)
|
|
|
{
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-#if 0
|
|
|
- for (int i = 0; i < DI_NUMBER; i++)
|
|
|
- {
|
|
|
- if ((settings.di_mode_bits & (1 << i)) != d_inputs[i].mode)
|
|
|
+ if (((settings.ai_state_bits >> i) & 1) != settings.ai[i].state)
|
|
|
{
|
|
|
- d_inputs[i].mode = settings.di_mode_bits & (1 << i);
|
|
|
- if (d_inputs[i].mode == 0)
|
|
|
- {
|
|
|
- d_inputs[i].cnt = 0;
|
|
|
- d_inputs[i].p_flag = false;
|
|
|
- di_cnt[i] = 0;
|
|
|
+ settings.ai[i].state = ((settings.ai_state_bits >> i) & 1);
|
|
|
+ if (settings.ai[i].state == 0) {
|
|
|
+ leds[ai_input_led[i]].state = LED_OFF;
|
|
|
}
|
|
|
- else
|
|
|
- {
|
|
|
- di_state_bit &= ~(1 << i);
|
|
|
+ else {
|
|
|
+ leds[ai_input_led[i]].state = LED_ON;
|
|
|
}
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
|