12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- #ifndef __IO_H
- #define __IO_H
- // Период опроса входов 100 мс
- #define INPUT_NUMBER 8 // Количество входов
- #define OUTPUT_NUMBER 8 // Количество выходов
- // Прочие параметры из других модулей для передачи по modbus
- //uint32_t uptime;
- // -------------------------------------------------------------------------- //
- //
- void io_port_init(void);
- //
- void io_input_init(void);
- //
- void io_tim_init(void);
- // -------------------------------------------------------------------------- //
- typedef struct
- {
- gpio_type *port;
- uint16_t pin;
- uint16_t mode;
- gpio_port_source_type port_source;
- uint16_t pin_source;
- uint32_t deb_counter;
-
- } in_t;
- // -------------------------------------------------------------------------- //
- // Текущие параметры
- extern uint16_t input_state[INPUT_NUMBER]; // состояние входа
- //uint32_t input_cnt[INPUT_NUMBER]; // счетчики входов
- //uint16_t output_state[INPUT_NUMBER]; // состояние выхода, 0 - норма, 1 - обрыв, 2 - КЗ
- // -------------------------------------------------------------------------- //
- // Структуры настроек. Хранятся во внутренней памяти контроллера.
- //
- typedef struct
- {
- uint16_t mode; // режим работы, 0 - вход, 1 - счетчик импульсов
- uint16_t debounce_time; // период антидребезга в мс
- } input_t;
- //
- // контроль состояний - обрыв, КЗ, норма
- typedef struct
- {
- uint16_t state; // состояние выхода
- uint16_t pwm; //
- uint16_t mode; // режим работы, 0 - выход, 1 - PWM
- uint16_t smode_state; // значение в безопасном режиме,
- // 0 - разомкнут, 1 - замкнут
- uint16_t smode_pwm; // значение PWM в безопасном режиме (%)
- uint16_t normal_state; // нормальное состояние выхода
- // 0 - разомкнут, 1 - замкнут
- } output_t;
- typedef struct
- {
- uint16_t smode; // безопасный режим 0 - включен, 1 - выключен
- uint16_t com_timeout; // время ожидания запроса от мастера
- } system_t;
- // Структура системных настроек
- typedef struct
- {
- uint16_t model; // Модель
- uint32_t proddate; // Дата производства
- uint32_t serial; // Серийный номер
- uint8_t fw_version[8]; // Версия ПО
- uint8_t test_state; // Статус тестирования
-
- } sys_settings_t;
- #endif // __IO_H
|