io_utils.c 841 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. #include "at32f403a_407.h"
  2. #include "io_utils.h"
  3. #include "FreeRTOS.h"
  4. #include "task.h"
  5. #include "input.h"
  6. #include "output.h"
  7. #include "settings_api.h"
  8. #include "mux.h"
  9. #include <stdio.h>
  10. bool save_mode = false;
  11. static uint16_t counter = 0;
  12. //
  13. void save_mode_init(void)
  14. {
  15. save_mode = settings.save_mode;
  16. save_mode ? mux_led_status(false) : mux_led_status(true);
  17. }
  18. //
  19. void save_mode_set(bool state)
  20. {
  21. save_mode = state;
  22. save_mode ? mux_led_status(false) : mux_led_status(true);
  23. }
  24. //
  25. bool save_mode_get(void)
  26. {
  27. return save_mode;
  28. }
  29. // Должна вызываться раз в секунду
  30. void save_mode_inc_cnt(void)
  31. {
  32. bool foo = counter++ > settings.save_delay ? true : false;
  33. save_mode_set(foo);
  34. }
  35. //
  36. void save_mode_reset_cnt(void)
  37. {
  38. counter = 0;
  39. }