reg_wwdg.h 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133
  1. ////////////////////////////////////////////////////////////////////////////////
  2. /// @file reg_wwdg.h
  3. /// @author AE TEAM
  4. /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE SERIES OF
  5. /// MM32 FIRMWARE LIBRARY.
  6. ////////////////////////////////////////////////////////////////////////////////
  7. /// @attention
  8. ///
  9. /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
  10. /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
  11. /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
  12. /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
  13. /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
  14. /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
  15. ///
  16. /// <H2><CENTER>&COPY; COPYRIGHT MINDMOTION </CENTER></H2>
  17. ////////////////////////////////////////////////////////////////////////////////
  18. // Define to prevent recursive inclusion
  19. #ifndef __REG_WWDG_H
  20. #define __REG_WWDG_H
  21. // Files includes
  22. #include <stdint.h>
  23. #include <stdbool.h>
  24. #include "types.h"
  25. #if defined ( __CC_ARM )
  26. #pragma anon_unions
  27. #endif
  28. ////////////////////////////////////////////////////////////////////////////////
  29. /// @brief WWDG Base Address Definition
  30. ////////////////////////////////////////////////////////////////////////////////
  31. #define WWDG_BASE (APB1PERIPH_BASE + 0x2C00) ///< Base Address: 0x40002C00
  32. ////////////////////////////////////////////////////////////////////////////////
  33. /// @brief WWDG Register Structure Definition
  34. ////////////////////////////////////////////////////////////////////////////////
  35. #undef USENCOMBINEREGISTER
  36. #undef USENNEWREGISTER
  37. #undef USENOLDREGISTER
  38. #define USENCOMBINEREGISTER
  39. #ifdef USENCOMBINEREGISTER
  40. typedef struct {
  41. __IO u32 CR; ///< Control register offset: 0x00
  42. union {
  43. __IO u32 CFGR; ///< Configuration register offset: 0x04
  44. __IO u32 CFR;
  45. };
  46. __IO u32 SR; ///< Status register offset: 0x08
  47. } WWDG_TypeDef;
  48. #endif
  49. #ifdef USENNEWREGISTER
  50. typedef struct {
  51. __IO u32 CR; ///< Control register offset: 0x00
  52. __IO u32 CFGR; ///< Configuration register offset: 0x04
  53. __IO u32 SR; ///< Status register offset: 0x08
  54. } WWDG_TypeDef;
  55. #endif
  56. #ifdef USENOLDREGISTER
  57. typedef struct {
  58. __IO u32 CR;
  59. __IO u32 CFR;
  60. __IO u32 SR;
  61. } WWDG_TypeDef;
  62. #endif
  63. ////////////////////////////////////////////////////////////////////////////////
  64. /// @brief WWDG type pointer Definition
  65. ////////////////////////////////////////////////////////////////////////////////
  66. #define WWDG ((WWDG_TypeDef*) WWDG_BASE)
  67. ////////////////////////////////////////////////////////////////////////////////
  68. /// @brief WWDG_CR Register Bit Definition
  69. ////////////////////////////////////////////////////////////////////////////////
  70. #define WWDG_CR_CNT_Pos (0)
  71. #define WWDG_CR_CNT (0x7FU << WWDG_CR_CNT_Pos) ///< T[6:0] bits (7-Bit counter (MSB to LSB))
  72. #define WWDG_CR_WDGA_Pos (7)
  73. #define WWDG_CR_WDGA (0x01U << WWDG_CR_WDGA_Pos) ///< Activation bit
  74. ////////////////////////////////////////////////////////////////////////////////
  75. /// @brief WWDG_CFR Register Bit Definition
  76. ////////////////////////////////////////////////////////////////////////////////
  77. #define WWDG_CFGR_WINDOW_Pos (0)
  78. #define WWDG_CFGR_WINDOW (0x7FU << WWDG_CFGR_WINDOW_Pos) ///< W[6:0] bits (7-bit window value)
  79. #define WWDG_CFGR_WDGTB_Pos (7)
  80. #define WWDG_CFGR_WDGTB (0x03U << WWDG_CFGR_WDGTB_Pos) ///< WDGTB[1:0] bits (Timer Base)
  81. #define WWDG_CFGR_WDGTB_1 (0x00U << WWDG_CFGR_WDGTB_Pos) ///< WDGTB[1:0] bits (Timer Base /1)
  82. #define WWDG_CFGR_WDGTB_2 (0x01U << WWDG_CFGR_WDGTB_Pos) ///< WDGTB[1:0] bits (Timer Base /2)
  83. #define WWDG_CFGR_WDGTB_4 (0x02U << WWDG_CFGR_WDGTB_Pos) ///< WDGTB[1:0] bits (Timer Base /4)
  84. #define WWDG_CFGR_WDGTB_8 (0x03U << WWDG_CFGR_WDGTB_Pos) ///< WDGTB[1:0] bits (Timer Base /8)
  85. #define WWDG_CFGR_EWI_Pos (9)
  86. #define WWDG_CFGR_EWI (0x01U << WWDG_CFGR_EWI_Pos) ///< Early Wakeup Interrupt
  87. ////////////////////////////////////////////////////////////////////////////////
  88. /// @brief WWDG_SR Register Bit Definition
  89. ////////////////////////////////////////////////////////////////////////////////
  90. #define WWDG_SR_EWIF_Pos (0)
  91. #define WWDG_SR_EWIF (0x01U << WWDG_SR_EWIF_Pos) ///< Early Wakeup Interrupt Flag
  92. /// @}
  93. /// @}
  94. /// @}
  95. ////////////////////////////////////////////////////////////////////////////////
  96. #endif
  97. ////////////////////////////////////////////////////////////////////////////////