123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125 |
- ////////////////////////////////////////////////////////////////////////////////
- /// @file reg_iwdg.h
- /// @author AE TEAM
- /// @brief THIS FILE CONTAINS ALL THE FUNCTIONS PROTOTYPES FOR THE SERIES OF
- /// MM32 FIRMWARE LIBRARY.
- ////////////////////////////////////////////////////////////////////////////////
- /// @attention
- ///
- /// THE EXISTING FIRMWARE IS ONLY FOR REFERENCE, WHICH IS DESIGNED TO PROVIDE
- /// CUSTOMERS WITH CODING INFORMATION ABOUT THEIR PRODUCTS SO THEY CAN SAVE
- /// TIME. THEREFORE, MINDMOTION SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT OR
- /// CONSEQUENTIAL DAMAGES ABOUT ANY CLAIMS ARISING OUT OF THE CONTENT OF SUCH
- /// HARDWARE AND/OR THE USE OF THE CODING INFORMATION CONTAINED HEREIN IN
- /// CONNECTION WITH PRODUCTS MADE BY CUSTOMERS.
- ///
- /// <H2><CENTER>© COPYRIGHT MINDMOTION </CENTER></H2>
- ////////////////////////////////////////////////////////////////////////////////
- // Define to prevent recursive inclusion
- #ifndef __REG_IWDG_H
- #define __REG_IWDG_H
- // Files includes
- #include <stdint.h>
- #include <stdbool.h>
- #include "types.h"
- #if defined ( __CC_ARM )
- #pragma anon_unions
- #endif
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG Base Address Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_BASE (APB1PERIPH_BASE + 0x3000) ///< Base Address: 0x40003000
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG Register Structure Definition
- ////////////////////////////////////////////////////////////////////////////////
- typedef struct {
- __IO u32 KR; ///< Key Register offset: 0x00
- __IO u32 PR; ///< Prescaler Register offset: 0x04
- __IO u32 RLR; ///< Reload Register offset: 0x08
- __IO u32 SR; ///< Status Register offset: 0x0C
- __IO u32 CR; ///< Control Register offset: 0x10
- __IO u32 IGEN; ///< Interrupt Generator Register offset: 0x14
- __IO u32 CNT; ///< Interrupt Generator count Register offset: 0x18
- __IO u32 PS; ///< Prescaler count Register offset: 0x1C
- } IWDG_TypeDef;
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG type pointer Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG ((IWDG_TypeDef*) IWDG_BASE)
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_KR Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_KEYR_KEY_Pos (0)
- #define IWDG_KEYR_KEY (0xFFFFU << IWDG_KEYR_KEY_Pos) ///< Key Value
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_PR Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_PR_PRE_Pos (0)
- #define IWDG_PR_PRE (0x07U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 4
- #define IWDG_PR_PRE_DIV4 (0x00U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 4
- #define IWDG_PR_PRE_DIV8 (0x01U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 8
- #define IWDG_PR_PRE_DIV16 (0x02U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 16
- #define IWDG_PR_PRE_DIV32 (0x03U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 32
- #define IWDG_PR_PRE_DIV64 (0x04U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 64
- #define IWDG_PR_PRE_DIV128 (0x05U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 128
- #define IWDG_PR_PRE_DIV256 (0x06U << IWDG_PR_PRE_Pos) ///< Prescaler divided by 256
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_RLR Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_RLR_RL_Pos (0)
- #define IWDG_RLR_RL (0x0FFFU << IWDG_RLR_RL_Pos) ///< Watchdog counter reload value
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_SR Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_SR_PVU_Pos (0)
- #define IWDG_SR_PVU (0x01U << IWDG_SR_PVU_Pos) ///< Watchdog prescaler value update
- #define IWDG_SR_RVU_Pos (1)
- #define IWDG_SR_RVU (0x01U << IWDG_SR_RVU_Pos) ///< Watchdog counter reload value update
- #define IWDG_SR_IVU_Pos (2)
- #define IWDG_SR_IVU (0x01U << IWDG_SR_IVU_Pos)
- #define IWDG_SR_UPDATE_Pos (3)
- #define IWDG_SR_UPDATE (0x01U << IWDG_SR_UPDATE_Pos)
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_CR Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_CR_IRQSEL_Pos (0)
- #define IWDG_CR_IRQSEL (0x01U << IWDG_CR_IRQSEL_Pos) ///< IWDG overflow operation selection
- #define IWDG_CR_IRQCLR_Pos (1)
- #define IWDG_CR_IRQCLR (0x01U << IWDG_CR_IRQCLR_Pos) ///< IWDG interrupt clear
- ////////////////////////////////////////////////////////////////////////////////
- /// @brief IWDG_IGRN Register Bit Definition
- ////////////////////////////////////////////////////////////////////////////////
- #define IWDG_IGEN_IGEN_Pos (0)
- #define IWDG_IGEN_IGEN (0xFFFU << IWDG_CR_IRQSEL_Pos) ///< IWDG Interrupt Generate value
- /// @}
- /// @}
- /// @}
- ////////////////////////////////////////////////////////////////////////////////
- #endif
- ////////////////////////////////////////////////////////////////////////////////
|