io.h 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. #ifndef __IO_H
  2. #define __IO_H
  3. // Период опроса входов 100 мс
  4. #define INPUT_NUMBER 8 // Количество входов
  5. #define OUTPUT_NUMBER 8 // Количество выходов
  6. // Прочие параметры из других модулей для передачи по modbus
  7. //uint32_t uptime;
  8. // -------------------------------------------------------------------------- //
  9. //
  10. void io_port_init(void);
  11. //
  12. void io_input_init(void);
  13. //
  14. void io_tim_init(void);
  15. // -------------------------------------------------------------------------- //
  16. typedef struct
  17. {
  18. gpio_type *port;
  19. uint16_t pin;
  20. uint16_t mode;
  21. gpio_port_source_type port_source;
  22. uint16_t pin_source;
  23. uint32_t deb_counter;
  24. } in_t;
  25. // -------------------------------------------------------------------------- //
  26. // Текущие параметры
  27. extern uint16_t input_state[INPUT_NUMBER]; // состояние входа
  28. //uint32_t input_cnt[INPUT_NUMBER]; // счетчики входов
  29. //uint16_t output_state[INPUT_NUMBER]; // состояние выхода, 0 - норма, 1 - обрыв, 2 - КЗ
  30. // -------------------------------------------------------------------------- //
  31. // Структуры настроек. Хранятся во внутренней памяти контроллера.
  32. //
  33. typedef struct
  34. {
  35. uint16_t mode; // режим работы, 0 - вход, 1 - счетчик импульсов
  36. uint16_t debounce_time; // период антидребезга в мс
  37. } input_t;
  38. //
  39. // контроль состояний - обрыв, КЗ, норма
  40. typedef struct
  41. {
  42. uint16_t state; // состояние выхода
  43. uint16_t pwm; //
  44. uint16_t mode; // режим работы, 0 - выход, 1 - PWM
  45. uint16_t smode_state; // значение в безопасном режиме,
  46. // 0 - разомкнут, 1 - замкнут
  47. uint16_t smode_pwm; // значение PWM в безопасном режиме (%)
  48. uint16_t normal_state; // нормальное состояние выхода
  49. // 0 - разомкнут, 1 - замкнут
  50. } output_t;
  51. typedef struct
  52. {
  53. uint16_t smode; // безопасный режим 0 - включен, 1 - выключен
  54. uint16_t com_timeout; // время ожидания запроса от мастера
  55. } system_t;
  56. // Структура системных настроек
  57. typedef struct
  58. {
  59. uint16_t model; // Модель
  60. uint32_t proddate; // Дата производства
  61. uint32_t serial; // Серийный номер
  62. uint8_t fw_version[8]; // Версия ПО
  63. uint8_t test_state; // Статус тестирования
  64. } sys_settings_t;
  65. #endif // __IO_H