analog_input.h 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. #ifndef __ANALOG_INPUT_H
  2. #define __ANALOG_INPUT_H
  3. #include <stdbool.h>
  4. // Режим измерения (ток или напряжение)
  5. typedef enum
  6. {
  7. MEAS_VOLTAGE = 0,
  8. MEAS_CURRENT,
  9. } MEAS_CHAN_MODE_t;
  10. typedef enum
  11. {
  12. MUX_301_CH = 0,
  13. AN_INP_1,
  14. AN_INP_2,
  15. AN_INP_3,
  16. AN_INP_4,
  17. AN_INP_5,
  18. AN_INP_6,
  19. V_ISO_CL, // +24 V
  20. V_ISO, // +5 V
  21. MUX_401_CH,
  22. AN_INP_7,
  23. AN_INP_8,
  24. AN_INP_9,
  25. AN_INP_10,
  26. AN_INP_11,
  27. AN_INP_12,
  28. CRNT_LIM_U_BFR_R,
  29. CRNT_LIM_U_ABFR_R,
  30. NUMBER_ADC_CH,
  31. } ANALOG_IN_t;
  32. //
  33. void ai_init(void);
  34. //
  35. void ai_set_meas_mode(void);
  36. //
  37. bool ai_adc_init(void);
  38. //
  39. void ai_processing(void);
  40. //
  41. void adc_get_two_channles(ANALOG_IN_t one, ANALOG_IN_t two);
  42. //
  43. void adc_print_data(void);
  44. //
  45. void adc_task(void *params);
  46. //
  47. void ai_connect_channel(uint8_t channel);
  48. //
  49. void ai_set_mode(MEAS_CHAN_MODE_t mode, uint8_t channel);
  50. //
  51. void ai_set_mode_word(MEAS_CHAN_MODE_t mode, uint8_t channel);
  52. //
  53. void ai_ext_sens_power(uint16_t state);
  54. //
  55. void ai_leds_processing(void);
  56. //
  57. void ai_connect_test(void);
  58. //
  59. void ai_mode_test(void);
  60. extern uint16_t adc_raw_data[];
  61. extern uint16_t ai_alarm;
  62. #endif // __ANALOG_INPUT_H