io_utils.c 751 B

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