settings_dio.c 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "at32f403a_407.h"
  2. #include "settings_api.h"
  3. #include "settings_dio.h"
  4. #if defined (MDIO_88)
  5. //
  6. void settings_dio_set_all_default(void)
  7. {
  8. // Дискретные/счетные входы
  9. settings_din_def(&settings);
  10. // Выходы
  11. settings_do_def(&settings);
  12. // Время ведения архива по каждому каналу (сек.)
  13. for (uint8_t i = 0; i < ARCH_DIO_CH_NUMBER; i++) {
  14. settings.period_archive[i] = 3600;
  15. }
  16. }
  17. // Установить параметры дискретных входов по умолчанию
  18. void settings_din_def(settings_t *settings)
  19. {
  20. // Все входы выключены
  21. settings->di_state_bits = 0;
  22. // Параметры входов в обычном режиме
  23. for (int i = 0; i < DI_NUMBER; i++) {
  24. settings->di[i].state = 0;
  25. }
  26. settings->di_mode_bits = 0;
  27. settings->di_norm_state_bits = 0;
  28. for (int i = 0; i < DI_NUMBER; i++) {
  29. settings->di_debounce[i] = 50;
  30. }
  31. }
  32. // Выходы. Настройка по умолчанию.
  33. void settings_do_def(settings_t *settings)
  34. {
  35. for (uint8_t i = 0; i < DO_NUMBER; i++)
  36. {
  37. settings->dout[i].state = 0; // выход выключен
  38. settings->dout[i].mode = 0; // режим работы выхода (обычный выход)
  39. settings->dout[i].value = 0; // значение на выходе в режиме обычного выхода
  40. settings->dout[i].pwm_duty = 30;// заполнение PWM
  41. settings->dout[i].pwm_period = 50; // период PWM
  42. settings->dout_save[i].state = 0; // выход выключен
  43. settings->dout_save[i].mode = 0; // режим работы выхода (обычный выход)
  44. settings->dout_save[i].value = 0; // значение на выходе в режиме обычного выхода
  45. settings->dout_save[i].pwm_duty = 30;// заполнение PWM
  46. settings->dout_save[i].pwm_period = 50; // период PWM
  47. }
  48. }
  49. #endif