settings_dio_api.c 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #include "at32f403a_407.h"
  2. #include "settings_api.h"
  3. #include "settings_dio_api.h"
  4. //
  5. void settings_dio_set_all_default(void)
  6. {
  7. // Дискретные/счетные входы
  8. settings_din_def(&settings);
  9. // Выходы
  10. settings_do_def(&settings);
  11. // Безопасный режим
  12. settings.save_mode = 1;
  13. // Время ожидания опроса (сек.)
  14. settings.save_delay = 60;
  15. // Время ведения архива по каждому каналу (сек.)
  16. for (uint8_t i = 0; i < ARCH_CH_NUMBER; i++) {
  17. settings.period_archive[i] = 3600;
  18. }
  19. }
  20. // Установить параметры дискретных входов по умолчанию
  21. void settings_din_def(settings_t *settings)
  22. {
  23. settings->di_mode_bits = 0;
  24. settings->di_norm_state_bits = 0;
  25. for (int i = 0; i < DI_NUMBER; i++) {
  26. settings->di_debounce[i] = 50;
  27. }
  28. }
  29. // Выходы
  30. void settings_do_def(settings_t *settings)
  31. {
  32. settings->do_mode_bits = 0; // режим работы выхода (обычный выход)
  33. settings->do_bits = 0; // последнее сохраненное значение
  34. settings->do_save_bits = 0;
  35. for (uint8_t i = 0; i < DO_NUMBER; i++)
  36. {
  37. settings->do_pwm[i] = 30;
  38. settings->do_pwm_save[i] = 30; // значение на выходах в бесопасном режиме работы
  39. settings->do_pwm_period[i] = 50;
  40. settings->do_pwm_period_save[i] = 50;
  41. }
  42. }