config.h 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #ifndef __CONFIG_H
  2. #define __CONFIG_H
  3. #include "stm32g4xx_hal.h"
  4. #define FW_VERSION "1.0"
  5. #define SETTINGS_ADDR 0x08000000 + (63 * 2048) //0x01F7FF
  6. // Ключ для контроля сектора настроек
  7. #define SETTINGS_KEY 123456789
  8. // Страница настроек
  9. #define SETTINGS_PAGE 63
  10. // Возвращает адрес страницы по номеру страницы
  11. #define GET_PAGE_ADDR(x) ((uint32_t)(0x08000000 + 0x800 * (x)))
  12. // Возвращает адрес настроек по номеру страницы
  13. #define GET_SETTINGS_ADDR(x) (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 4)
  14. // Возвращает адрес ключа настроек по номеру страницы
  15. #define GET_SETTINGS_KEY_ADDR(x) (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 16)
  16. // Возвращает адрес CRC структуры настроек во флеш памяти по номеру страницы
  17. #define GET_SETTINGS_CRC_ADDR(x) (GET_PAGE_ADDR(SETTINGS_PAGE + 1) - 8)
  18. /* @note All the executable code is mapped in SRAM1 area */
  19. #define FLASH_USER_START_ADDR ADDR_FLASH_PAGE_0 /* Start @ of user Flash area */
  20. #define FLASH_USER_END_ADDR (ADDR_FLASH_PAGE_63 + FLASH_PAGE_SIZE - 1) /* End @ of user Flash area */
  21. // Софтверный фильтр для энкодера в меню
  22. #define ENC_SOFT_FILTER_CNT 3
  23. // Фильтр антидребезга для кнопки энкодера
  24. #define BUTTON_GLICH_TIMEOUT 50
  25. // Стрелки клавиатуры "a", "s", "d" управляют меню в консоли
  26. #define KEYBOARD_MENU
  27. // Коэффициент 1, верхний порог
  28. #define FACTOR_1_UP_THR 1050
  29. // Коэффициент 1, нижний порог
  30. #define FACTOR_1_DOWN_THR 950
  31. // Коэффициент 2, верхний порог
  32. #define FACTOR_2_UP_THR 2050
  33. // Коэффициент 2, нижний порог
  34. #define FACTOR_2_DOWN_THR 1950
  35. #endif /* #ifndef __CONFIG_H */