]> git.sur5r.net Git - freertos/blob - FreeRTOS/Demo/CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC/Nuvoton_Code/StdDriver/inc/wwdt.h
Add Cortex M23 GCC and IAR ports. Add demo projects for Nuvoton NuMaker-PFM-2351.
[freertos] / FreeRTOS / Demo / CORTEX_MPU_M23_Nuvoton_NuMaker_PFM_M2351_IAR_GCC / Nuvoton_Code / StdDriver / inc / wwdt.h
1 /**************************************************************************//**\r
2  * @file     wwdt.h\r
3  * @version  V3.00\r
4  * @brief    Window Watchdog Timer(WWDT) driver header file\r
5  *\r
6  * @copyright (C) 2016 Nuvoton Technology Corp. All rights reserved.\r
7  *****************************************************************************/\r
8 #ifndef __WWDT_H__\r
9 #define __WWDT_H__\r
10 \r
11 #ifdef __cplusplus\r
12 extern "C"\r
13 {\r
14 #endif\r
15 \r
16 \r
17 /** @addtogroup Standard_Driver Standard Driver\r
18   @{\r
19 */\r
20 \r
21 /** @addtogroup WWDT_Driver WWDT Driver\r
22   @{\r
23 */\r
24 \r
25 /** @addtogroup WWDT_EXPORTED_CONSTANTS WWDT Exported Constants\r
26   @{\r
27 */\r
28 /*---------------------------------------------------------------------------------------------------------*/\r
29 /*  WWDT Prescale Period Constant Definitions                                                              */\r
30 /*---------------------------------------------------------------------------------------------------------*/\r
31 #define WWDT_PRESCALER_1        (0 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 1 * (64*WWDT_CLK) \hideinitializer */\r
32 #define WWDT_PRESCALER_2        (1 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 2 * (64*WWDT_CLK) \hideinitializer */\r
33 #define WWDT_PRESCALER_4        (2 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 4 * (64*WWDT_CLK) \hideinitializer */\r
34 #define WWDT_PRESCALER_8        (3 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 8 * (64*WWDT_CLK) \hideinitializer */\r
35 #define WWDT_PRESCALER_16       (4 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 16 * (64*WWDT_CLK) \hideinitializer */\r
36 #define WWDT_PRESCALER_32       (5 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 32 * (64*WWDT_CLK) \hideinitializer */\r
37 #define WWDT_PRESCALER_64       (6 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 64 * (64*WWDT_CLK) \hideinitializer */\r
38 #define WWDT_PRESCALER_128      (7 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 128 * (64*WWDT_CLK) \hideinitializer */\r
39 #define WWDT_PRESCALER_192      (8 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 192 * (64*WWDT_CLK) \hideinitializer */\r
40 #define WWDT_PRESCALER_256      (9 << WWDT_CTL_PSCSEL_Pos)  /*!< Select max time-out period to 256 * (64*WWDT_CLK) \hideinitializer */\r
41 #define WWDT_PRESCALER_384      (10 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 384 * (64*WWDT_CLK) \hideinitializer */\r
42 #define WWDT_PRESCALER_512      (11 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 512 * (64*WWDT_CLK) \hideinitializer */\r
43 #define WWDT_PRESCALER_768      (12 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 768 * (64*WWDT_CLK) \hideinitializer */\r
44 #define WWDT_PRESCALER_1024     (13 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 1024 * (64*WWDT_CLK) \hideinitializer */\r
45 #define WWDT_PRESCALER_1536     (14 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 1536 * (64*WWDT_CLK) \hideinitializer */\r
46 #define WWDT_PRESCALER_2048     (15 << WWDT_CTL_PSCSEL_Pos) /*!< Select max time-out period to 2048 * (64*WWDT_CLK) \hideinitializer */\r
47 \r
48 /*---------------------------------------------------------------------------------------------------------*/\r
49 /*  WWDT Reload Counter Keyword Constant Definitions                                                       */\r
50 /*---------------------------------------------------------------------------------------------------------*/\r
51 #define WWDT_RELOAD_WORD        (0x00005AA5)                /*!< Fill this value to WWDT_RLDCNT register to reload WWDT counter \hideinitializer */\r
52 \r
53 /*@}*/ /* end of group WWDT_EXPORTED_CONSTANTS */\r
54 \r
55 \r
56 /** @addtogroup WWDT_EXPORTED_FUNCTIONS WWDT Exported Functions\r
57   @{\r
58 */\r
59 \r
60 /**\r
61   * @brief      Clear WWDT Reset System Flag\r
62   *\r
63   * @param      None\r
64   *\r
65   * @return     None\r
66   *\r
67   * @details    This macro is used to clear WWDT time-out reset system flag.\r
68   * \hideinitializer\r
69   */\r
70 #define WWDT_CLEAR_RESET_FLAG()     (WWDT->STATUS = WWDT_STATUS_WWDTRF_Msk)\r
71 \r
72 /**\r
73   * @brief      Clear WWDT Compared Match Interrupt Flag\r
74   *\r
75   * @param      None\r
76   *\r
77   * @return     None\r
78   *\r
79   * @details    This macro is used to clear WWDT compared match interrupt flag.\r
80   * \hideinitializer\r
81   */\r
82 #define WWDT_CLEAR_INT_FLAG()       (WWDT->STATUS = WWDT_STATUS_WWDTIF_Msk)\r
83 \r
84 /**\r
85   * @brief      Get WWDT Reset System Flag\r
86   *\r
87   * @param      None\r
88   *\r
89   * @retval     0   WWDT time-out reset system did not occur\r
90   * @retval     1   WWDT time-out reset system occurred\r
91   *\r
92   * @details    This macro is used to indicate system has been reset by WWDT time-out reset or not.\r
93   * \hideinitializer\r
94   */\r
95 #define WWDT_GET_RESET_FLAG()       ((WWDT->STATUS & WWDT_STATUS_WWDTRF_Msk)? 1 : 0)\r
96 \r
97 /**\r
98   * @brief      Get WWDT Compared Match Interrupt Flag\r
99   *\r
100   * @param      None\r
101   *\r
102   * @retval     0   WWDT compare match interrupt did not occur\r
103   * @retval     1   WWDT compare match interrupt occurred\r
104   *\r
105   * @details    This macro is used to indicate WWDT counter value matches CMPDAT value or not.\r
106   * \hideinitializer\r
107   */\r
108 #define WWDT_GET_INT_FLAG()         ((WWDT->STATUS & WWDT_STATUS_WWDTIF_Msk)? 1 : 0)\r
109 \r
110 /**\r
111   * @brief      Get WWDT Counter\r
112   *\r
113   * @param      None\r
114   *\r
115   * @return     WWDT Counter Value\r
116   *\r
117   * @details    This macro reflects the current WWDT counter value.\r
118   * \hideinitializer\r
119   */\r
120 #define WWDT_GET_COUNTER()          (WWDT->CNT)\r
121 \r
122 /**\r
123   * @brief      Reload WWDT Counter\r
124   *\r
125   * @param      None\r
126   *\r
127   * @return     None\r
128   *\r
129   * @details    This macro is used to reload the WWDT counter value to 0x3F.\r
130   * @note       User can only write WWDT_RLDCNT register to reload WWDT counter value when current WWDT counter value \n\r
131   *             between 0 and CMPDAT value. If user writes WWDT_RLDCNT when current WWDT counter value is larger than CMPDAT, \n\r
132   *             WWDT reset signal will generate immediately to reset system.\r
133   * \hideinitializer\r
134   */\r
135 #define WWDT_RELOAD_COUNTER()       (WWDT->RLDCNT = WWDT_RELOAD_WORD)\r
136 \r
137 void WWDT_Open(uint32_t u32PreScale, uint32_t u32CmpValue, uint32_t u32EnableInt);\r
138 \r
139 /*@}*/ /* end of group WWDT_EXPORTED_FUNCTIONS */\r
140 \r
141 /*@}*/ /* end of group WWDT_Driver */\r
142 \r
143 /*@}*/ /* end of group Standard_Driver */\r
144 \r
145 #ifdef __cplusplus\r
146 }\r
147 #endif\r
148 \r
149 #endif /* __WWDT_H__ */\r
150 \r
151 /*** (C) COPYRIGHT 2016 Nuvoton Technology Corp. ***/\r