123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- #ifndef __ANALOG_INPUT_H
- #define __ANALOG_INPUT_H
- #include <stdbool.h>
- typedef struct
- {
- uint8_t state; // 0 - выкл, 1 - вкл
- uint8_t mode; // режим измерения (0 - напряжение, 1 - ток)
- uint8_t gain_factor; // коэффициент усиления
- uint8_t name;
- } ai_t;
- // Режим измерения (ток или напряжение)
- typedef enum
- {
- MEAS_VOLTAGE = 0,
- MEAS_CURRENT,
-
- } MEAS_CHAN_MODE_t;
- typedef enum
- {
- MUX_301_CH = 0,
- AN_INP_1,
- AN_INP_2,
- AN_INP_3,
- AN_INP_4,
- AN_INP_5,
- AN_INP_6,
- V_ISO_CL, // +24 V
- V_ISO, // +5 V
-
- MUX_401_CH,
- 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,
- NUMBER_ADC_CH,
-
- } ANALOG_IN_t;
- //
- void ai_init_modbus_params(void);
- //
- void ai_init(void);
- //
- void ai_led_update(void);
- //
- void ai_set(void);
- //
- void ai_set_meas_mode(void);
- //
- bool ai_adc_init(void);
- //
- void ai_processing(void);
- //
- void adc_meas_two_channels(ai_t *one, ai_t *two, uint16_t *out_one, uint16_t *out_two);
- //
- uint8_t adc_get_gain(uint8_t tmp);
- //
- void adc_print_data(void);
- //
- void adc_task(void *params);
- //
- void ai_connect_channel(uint8_t channel);
- //
- void ai_set_mode(MEAS_CHAN_MODE_t mode, uint8_t channel);
- //
- void ai_set_mode_word(MEAS_CHAN_MODE_t mode, uint8_t channel);
- //
- void ai_ext_sens_power(uint16_t state);
- //
- void ai_leds_processing(void);
- //
- void ai_connect_test(void);
- //
- void ai_mode_test(void);
- extern uint16_t ai_gain[];
- extern uint16_t adc_raw_data[];
- extern uint16_t ai_alarm;
- extern uint16_t ai_state_bit;
- #endif // __ANALOG_INPUT_H
|