The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

UserRevisionLine numberNew contents of line
AnnaBridge 171:3a7713b1edbc 1 /**************************************************************************//**
AnnaBridge 171:3a7713b1edbc 2 * @file wdt.h
AnnaBridge 171:3a7713b1edbc 3 * @version V3.00
AnnaBridge 171:3a7713b1edbc 4 * $Revision: 7 $
AnnaBridge 171:3a7713b1edbc 5 * $Date: 15/08/11 10:26a $
AnnaBridge 171:3a7713b1edbc 6 * @brief M451 series WDT driver header file
AnnaBridge 171:3a7713b1edbc 7 *
AnnaBridge 171:3a7713b1edbc 8 * @note
AnnaBridge 171:3a7713b1edbc 9 * Copyright (C) 2013~2015 Nuvoton Technology Corp. All rights reserved.
AnnaBridge 171:3a7713b1edbc 10 *****************************************************************************/
AnnaBridge 171:3a7713b1edbc 11 #ifndef __WDT_H__
AnnaBridge 171:3a7713b1edbc 12 #define __WDT_H__
AnnaBridge 171:3a7713b1edbc 13
AnnaBridge 171:3a7713b1edbc 14 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 15 extern "C"
AnnaBridge 171:3a7713b1edbc 16 {
AnnaBridge 171:3a7713b1edbc 17 #endif
AnnaBridge 171:3a7713b1edbc 18
AnnaBridge 171:3a7713b1edbc 19
AnnaBridge 171:3a7713b1edbc 20 /** @addtogroup Standard_Driver Standard Driver
AnnaBridge 171:3a7713b1edbc 21 @{
AnnaBridge 171:3a7713b1edbc 22 */
AnnaBridge 171:3a7713b1edbc 23
AnnaBridge 171:3a7713b1edbc 24 /** @addtogroup WDT_Driver WDT Driver
AnnaBridge 171:3a7713b1edbc 25 @{
AnnaBridge 171:3a7713b1edbc 26 */
AnnaBridge 171:3a7713b1edbc 27
AnnaBridge 171:3a7713b1edbc 28 /** @addtogroup WDT_EXPORTED_CONSTANTS WDT Exported Constants
AnnaBridge 171:3a7713b1edbc 29 @{
AnnaBridge 171:3a7713b1edbc 30 */
AnnaBridge 171:3a7713b1edbc 31 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 32 /* WDT Time-out Interval Period Constant Definitions */
AnnaBridge 171:3a7713b1edbc 33 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 34 #define WDT_TIMEOUT_2POW4 (0UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^4 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 35 #define WDT_TIMEOUT_2POW6 (1UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^6 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 36 #define WDT_TIMEOUT_2POW8 (2UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^8 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 37 #define WDT_TIMEOUT_2POW10 (3UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^10 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 38 #define WDT_TIMEOUT_2POW12 (4UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^12 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 39 #define WDT_TIMEOUT_2POW14 (5UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^14 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 40 #define WDT_TIMEOUT_2POW16 (6UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^16 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 41 #define WDT_TIMEOUT_2POW18 (7UL << WDT_CTL_TOUTSEL_Pos) /*!< Setting WDT time-out interval to 2^18 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 42
AnnaBridge 171:3a7713b1edbc 43 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 44 /* WDT Reset Delay Period Constant Definitions */
AnnaBridge 171:3a7713b1edbc 45 /*---------------------------------------------------------------------------------------------------------*/
AnnaBridge 171:3a7713b1edbc 46 #define WDT_RESET_DELAY_1026CLK (0UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< Setting WDT reset delay period to 1026 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 47 #define WDT_RESET_DELAY_130CLK (1UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< Setting WDT reset delay period to 130 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 48 #define WDT_RESET_DELAY_18CLK (2UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< Setting WDT reset delay period to 18 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 49 #define WDT_RESET_DELAY_3CLK (3UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< Setting WDT reset delay period to 3 * WDT clocks */
AnnaBridge 171:3a7713b1edbc 50
AnnaBridge 171:3a7713b1edbc 51 /*@}*/ /* end of group WDT_EXPORTED_CONSTANTS */
AnnaBridge 171:3a7713b1edbc 52
AnnaBridge 171:3a7713b1edbc 53
AnnaBridge 171:3a7713b1edbc 54 /** @addtogroup WDT_EXPORTED_FUNCTIONS WDT Exported Functions
AnnaBridge 171:3a7713b1edbc 55 @{
AnnaBridge 171:3a7713b1edbc 56 */
AnnaBridge 171:3a7713b1edbc 57
AnnaBridge 171:3a7713b1edbc 58 /**
AnnaBridge 171:3a7713b1edbc 59 * @brief Clear WDT Reset System Flag
AnnaBridge 171:3a7713b1edbc 60 *
AnnaBridge 171:3a7713b1edbc 61 * @param None
AnnaBridge 171:3a7713b1edbc 62 *
AnnaBridge 171:3a7713b1edbc 63 * @return None
AnnaBridge 171:3a7713b1edbc 64 *
AnnaBridge 171:3a7713b1edbc 65 * @details This macro clears WDT time-out reset system flag.
AnnaBridge 171:3a7713b1edbc 66 */
AnnaBridge 171:3a7713b1edbc 67 #define WDT_CLEAR_RESET_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_RSTF_Msk)
AnnaBridge 171:3a7713b1edbc 68
AnnaBridge 171:3a7713b1edbc 69 /**
AnnaBridge 171:3a7713b1edbc 70 * @brief Clear WDT Time-out Interrupt Flag
AnnaBridge 171:3a7713b1edbc 71 *
AnnaBridge 171:3a7713b1edbc 72 * @param None
AnnaBridge 171:3a7713b1edbc 73 *
AnnaBridge 171:3a7713b1edbc 74 * @return None
AnnaBridge 171:3a7713b1edbc 75 *
AnnaBridge 171:3a7713b1edbc 76 * @details This macro clears WDT time-out interrupt flag.
AnnaBridge 171:3a7713b1edbc 77 */
AnnaBridge 171:3a7713b1edbc 78 #define WDT_CLEAR_TIMEOUT_INT_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_IF_Msk)
AnnaBridge 171:3a7713b1edbc 79
AnnaBridge 171:3a7713b1edbc 80 /**
AnnaBridge 171:3a7713b1edbc 81 * @brief Clear WDT Wake-up Flag
AnnaBridge 171:3a7713b1edbc 82 *
AnnaBridge 171:3a7713b1edbc 83 * @param None
AnnaBridge 171:3a7713b1edbc 84 *
AnnaBridge 171:3a7713b1edbc 85 * @return None
AnnaBridge 171:3a7713b1edbc 86 *
AnnaBridge 171:3a7713b1edbc 87 * @details This macro clears WDT time-out wake-up system flag.
AnnaBridge 171:3a7713b1edbc 88 */
AnnaBridge 171:3a7713b1edbc 89 #define WDT_CLEAR_TIMEOUT_WAKEUP_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk)) | WDT_CTL_WKF_Msk)
AnnaBridge 171:3a7713b1edbc 90
AnnaBridge 171:3a7713b1edbc 91 /**
AnnaBridge 171:3a7713b1edbc 92 * @brief Get WDT Time-out Reset Flag
AnnaBridge 171:3a7713b1edbc 93 *
AnnaBridge 171:3a7713b1edbc 94 * @param None
AnnaBridge 171:3a7713b1edbc 95 *
AnnaBridge 171:3a7713b1edbc 96 * @retval 0 WDT time-out reset system did not occur
AnnaBridge 171:3a7713b1edbc 97 * @retval 1 WDT time-out reset system occurred
AnnaBridge 171:3a7713b1edbc 98 *
AnnaBridge 171:3a7713b1edbc 99 * @details This macro indicates system has been reset by WDT time-out reset or not.
AnnaBridge 171:3a7713b1edbc 100 */
AnnaBridge 171:3a7713b1edbc 101 #define WDT_GET_RESET_FLAG() ((WDT->CTL & WDT_CTL_RSTF_Msk)? 1 : 0)
AnnaBridge 171:3a7713b1edbc 102
AnnaBridge 171:3a7713b1edbc 103 /**
AnnaBridge 171:3a7713b1edbc 104 * @brief Get WDT Time-out Interrupt Flag
AnnaBridge 171:3a7713b1edbc 105 *
AnnaBridge 171:3a7713b1edbc 106 * @param None
AnnaBridge 171:3a7713b1edbc 107 *
AnnaBridge 171:3a7713b1edbc 108 * @retval 0 WDT time-out interrupt did not occur
AnnaBridge 171:3a7713b1edbc 109 * @retval 1 WDT time-out interrupt occurred
AnnaBridge 171:3a7713b1edbc 110 *
AnnaBridge 171:3a7713b1edbc 111 * @details This macro indicates WDT time-out interrupt occurred or not.
AnnaBridge 171:3a7713b1edbc 112 */
AnnaBridge 171:3a7713b1edbc 113 #define WDT_GET_TIMEOUT_INT_FLAG() ((WDT->CTL & WDT_CTL_IF_Msk)? 1 : 0)
AnnaBridge 171:3a7713b1edbc 114
AnnaBridge 171:3a7713b1edbc 115 /**
AnnaBridge 171:3a7713b1edbc 116 * @brief Get WDT Time-out Wake-up Flag
AnnaBridge 171:3a7713b1edbc 117 *
AnnaBridge 171:3a7713b1edbc 118 * @param None
AnnaBridge 171:3a7713b1edbc 119 *
AnnaBridge 171:3a7713b1edbc 120 * @retval 0 WDT time-out interrupt does not cause CPU wake-up
AnnaBridge 171:3a7713b1edbc 121 * @retval 1 WDT time-out interrupt event cause CPU wake-up
AnnaBridge 171:3a7713b1edbc 122 *
AnnaBridge 171:3a7713b1edbc 123 * @details This macro indicates WDT time-out interrupt event has waked up system or not.
AnnaBridge 171:3a7713b1edbc 124 */
AnnaBridge 171:3a7713b1edbc 125 #define WDT_GET_TIMEOUT_WAKEUP_FLAG() ((WDT->CTL & WDT_CTL_WKF_Msk)? 1 : 0)
AnnaBridge 171:3a7713b1edbc 126
AnnaBridge 171:3a7713b1edbc 127 /**
AnnaBridge 171:3a7713b1edbc 128 * @brief Reset WDT Counter
AnnaBridge 171:3a7713b1edbc 129 *
AnnaBridge 171:3a7713b1edbc 130 * @param None
AnnaBridge 171:3a7713b1edbc 131 *
AnnaBridge 171:3a7713b1edbc 132 * @return None
AnnaBridge 171:3a7713b1edbc 133 *
AnnaBridge 171:3a7713b1edbc 134 * @details This macro is used to reset the internal 18-bit WDT up counter value.
AnnaBridge 171:3a7713b1edbc 135 * @note If WDT is activated and time-out reset system function is enabled also, user should \n
AnnaBridge 171:3a7713b1edbc 136 * reset the 18-bit WDT up counter value to avoid generate WDT time-out reset signal to \n
AnnaBridge 171:3a7713b1edbc 137 * reset system before the WDT time-out reset delay period expires.
AnnaBridge 171:3a7713b1edbc 138 */
AnnaBridge 171:3a7713b1edbc 139 #define WDT_RESET_COUNTER() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk | WDT_CTL_RSTF_Msk)) | WDT_CTL_RSTCNT_Msk)
AnnaBridge 171:3a7713b1edbc 140
AnnaBridge 171:3a7713b1edbc 141 /**
AnnaBridge 171:3a7713b1edbc 142 * @brief Stop WDT Counting
AnnaBridge 171:3a7713b1edbc 143 *
AnnaBridge 171:3a7713b1edbc 144 * @param None
AnnaBridge 171:3a7713b1edbc 145 *
AnnaBridge 171:3a7713b1edbc 146 * @return None
AnnaBridge 171:3a7713b1edbc 147 *
AnnaBridge 171:3a7713b1edbc 148 * @details This function will stop WDT counting and disable WDT module.
AnnaBridge 171:3a7713b1edbc 149 */
AnnaBridge 171:3a7713b1edbc 150 static __INLINE void WDT_Close(void)
AnnaBridge 171:3a7713b1edbc 151 {
AnnaBridge 171:3a7713b1edbc 152 WDT->CTL = 0;
AnnaBridge 171:3a7713b1edbc 153 return;
AnnaBridge 171:3a7713b1edbc 154 }
AnnaBridge 171:3a7713b1edbc 155
AnnaBridge 171:3a7713b1edbc 156 /**
AnnaBridge 171:3a7713b1edbc 157 * @brief Enable WDT Time-out Interrupt
AnnaBridge 171:3a7713b1edbc 158 *
AnnaBridge 171:3a7713b1edbc 159 * @param None
AnnaBridge 171:3a7713b1edbc 160 *
AnnaBridge 171:3a7713b1edbc 161 * @return None
AnnaBridge 171:3a7713b1edbc 162 *
AnnaBridge 171:3a7713b1edbc 163 * @details This function will enable the WDT time-out interrupt function.
AnnaBridge 171:3a7713b1edbc 164 */
AnnaBridge 171:3a7713b1edbc 165 static __INLINE void WDT_EnableInt(void)
AnnaBridge 171:3a7713b1edbc 166 {
AnnaBridge 171:3a7713b1edbc 167 WDT->CTL |= WDT_CTL_INTEN_Msk;
AnnaBridge 171:3a7713b1edbc 168 return;
AnnaBridge 171:3a7713b1edbc 169 }
AnnaBridge 171:3a7713b1edbc 170
AnnaBridge 171:3a7713b1edbc 171 /**
AnnaBridge 171:3a7713b1edbc 172 * @brief Disable WDT Time-out Interrupt
AnnaBridge 171:3a7713b1edbc 173 *
AnnaBridge 171:3a7713b1edbc 174 * @param None
AnnaBridge 171:3a7713b1edbc 175 *
AnnaBridge 171:3a7713b1edbc 176 * @return None
AnnaBridge 171:3a7713b1edbc 177 *
AnnaBridge 171:3a7713b1edbc 178 * @details This function will disable the WDT time-out interrupt function.
AnnaBridge 171:3a7713b1edbc 179 */
AnnaBridge 171:3a7713b1edbc 180 static __INLINE void WDT_DisableInt(void)
AnnaBridge 171:3a7713b1edbc 181 {
AnnaBridge 171:3a7713b1edbc 182 // Do not touch another write 1 clear bits
AnnaBridge 171:3a7713b1edbc 183 WDT->CTL &= ~(WDT_CTL_INTEN_Msk | WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk);
AnnaBridge 171:3a7713b1edbc 184 return;
AnnaBridge 171:3a7713b1edbc 185 }
AnnaBridge 171:3a7713b1edbc 186
AnnaBridge 171:3a7713b1edbc 187 void WDT_Open(uint32_t u32TimeoutInterval, uint32_t u32ResetDelay, uint32_t u32EnableReset, uint32_t u32EnableWakeup);
AnnaBridge 171:3a7713b1edbc 188
AnnaBridge 171:3a7713b1edbc 189 /*@}*/ /* end of group WDT_EXPORTED_FUNCTIONS */
AnnaBridge 171:3a7713b1edbc 190
AnnaBridge 171:3a7713b1edbc 191 /*@}*/ /* end of group WDT_Driver */
AnnaBridge 171:3a7713b1edbc 192
AnnaBridge 171:3a7713b1edbc 193 /*@}*/ /* end of group Standard_Driver */
AnnaBridge 171:3a7713b1edbc 194
AnnaBridge 171:3a7713b1edbc 195 #ifdef __cplusplus
AnnaBridge 171:3a7713b1edbc 196 }
AnnaBridge 171:3a7713b1edbc 197 #endif
AnnaBridge 171:3a7713b1edbc 198
AnnaBridge 171:3a7713b1edbc 199 #endif //__WDT_H__
AnnaBridge 171:3a7713b1edbc 200
AnnaBridge 171:3a7713b1edbc 201 /*** (C) COPYRIGHT 2013~2015 Nuvoton Technology Corp. ***/