mbed library sources. Supersedes mbed-src.

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Fri Oct 28 11:17:30 2016 +0100
Revision:
149:156823d33999
Parent:
targets/cmsis/TARGET_NUVOTON/TARGET_NUC472/StdDriver/nuc472_wdt.h@144:ef7eb2e8f9f7
This updates the lib to the mbed lib v128

NOTE: This release includes a restructuring of the file and directory locations and thus some
include paths in your code may need updating accordingly.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /**************************************************************************//**
<> 144:ef7eb2e8f9f7 2 * @file wdt.h
<> 144:ef7eb2e8f9f7 3 * @version V1.00
<> 144:ef7eb2e8f9f7 4 * $Revision: 8 $
<> 144:ef7eb2e8f9f7 5 * $Date: 14/05/29 1:13p $
<> 144:ef7eb2e8f9f7 6 * @brief NUC472/NUC442 WDT driver header file
<> 144:ef7eb2e8f9f7 7 *
<> 144:ef7eb2e8f9f7 8 * @note
<> 144:ef7eb2e8f9f7 9 * Copyright (C) 2013 Nuvoton Technology Corp. All rights reserved.
<> 144:ef7eb2e8f9f7 10 *****************************************************************************/
<> 144:ef7eb2e8f9f7 11 #ifndef __WDT_H__
<> 144:ef7eb2e8f9f7 12 #define __WDT_H__
<> 144:ef7eb2e8f9f7 13
<> 144:ef7eb2e8f9f7 14 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 15 extern "C"
<> 144:ef7eb2e8f9f7 16 {
<> 144:ef7eb2e8f9f7 17 #endif
<> 144:ef7eb2e8f9f7 18
<> 144:ef7eb2e8f9f7 19
<> 144:ef7eb2e8f9f7 20 /** @addtogroup NUC472_442_Device_Driver NUC472/NUC442 Device Driver
<> 144:ef7eb2e8f9f7 21 @{
<> 144:ef7eb2e8f9f7 22 */
<> 144:ef7eb2e8f9f7 23
<> 144:ef7eb2e8f9f7 24 /** @addtogroup NUC472_442_WDT_Driver WDT Driver
<> 144:ef7eb2e8f9f7 25 @{
<> 144:ef7eb2e8f9f7 26 */
<> 144:ef7eb2e8f9f7 27
<> 144:ef7eb2e8f9f7 28 /** @addtogroup NUC472_442_WDT_EXPORTED_CONSTANTS WDT Exported Constants
<> 144:ef7eb2e8f9f7 29 @{
<> 144:ef7eb2e8f9f7 30 */
<> 144:ef7eb2e8f9f7 31 #define WDT_TIMEOUT_2POW4 (0UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^4 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 32 #define WDT_TIMEOUT_2POW6 (1UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^6 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 33 #define WDT_TIMEOUT_2POW8 (2UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^8 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 34 #define WDT_TIMEOUT_2POW10 (3UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^10 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 35 #define WDT_TIMEOUT_2POW12 (4UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^12 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 36 #define WDT_TIMEOUT_2POW14 (5UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^14 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 37 #define WDT_TIMEOUT_2POW16 (6UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^16 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 38 #define WDT_TIMEOUT_2POW18 (7UL << WDT_CTL_TOUTSEL_Pos) /*!< WDT setting for timeout interval = 2^18 * WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 39
<> 144:ef7eb2e8f9f7 40 #define WDT_RESET_DELAY_3CLK (3UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< WDT setting reset delay to 3 WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 41 #define WDT_RESET_DELAY_18CLK (2UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< WDT setting reset delay to 18 WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 42 #define WDT_RESET_DELAY_130CLK (1UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< WDT setting reset delay to 130 WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 43 #define WDT_RESET_DELAY_1026CLK (0UL << WDT_ALTCTL_RSTDSEL_Pos) /*!< WDT setting reset delay to 1026 WDT clocks \hideinitializer */
<> 144:ef7eb2e8f9f7 44
<> 144:ef7eb2e8f9f7 45 /*@}*/ /* end of group NUC472_442_WDT_EXPORTED_CONSTANTS */
<> 144:ef7eb2e8f9f7 46
<> 144:ef7eb2e8f9f7 47
<> 144:ef7eb2e8f9f7 48 /** @addtogroup NUC472_442_WDT_EXPORTED_FUNCTIONS WDT Exported Functions
<> 144:ef7eb2e8f9f7 49 @{
<> 144:ef7eb2e8f9f7 50 */
<> 144:ef7eb2e8f9f7 51
<> 144:ef7eb2e8f9f7 52 /**
<> 144:ef7eb2e8f9f7 53 * @brief This macro clear WDT time-out reset system flag.
<> 144:ef7eb2e8f9f7 54 * @param None
<> 144:ef7eb2e8f9f7 55 * @return None
<> 144:ef7eb2e8f9f7 56 * \hideinitializer
<> 144:ef7eb2e8f9f7 57 */
<> 144:ef7eb2e8f9f7 58 #define WDT_CLEAR_RESET_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_RSTF_Msk)
<> 144:ef7eb2e8f9f7 59
<> 144:ef7eb2e8f9f7 60 /**
<> 144:ef7eb2e8f9f7 61 * @brief This macro clear WDT time-out interrupt flag.
<> 144:ef7eb2e8f9f7 62 * @param None
<> 144:ef7eb2e8f9f7 63 * @return None
<> 144:ef7eb2e8f9f7 64 * \hideinitializer
<> 144:ef7eb2e8f9f7 65 */
<> 144:ef7eb2e8f9f7 66 #define WDT_CLEAR_TIMEOUT_INT_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_WKF_Msk)) | WDT_CTL_IF_Msk)
<> 144:ef7eb2e8f9f7 67
<> 144:ef7eb2e8f9f7 68 /**
<> 144:ef7eb2e8f9f7 69 * @brief This macro clear WDT time-out wake-up system flag.
<> 144:ef7eb2e8f9f7 70 * @param None
<> 144:ef7eb2e8f9f7 71 * @return None
<> 144:ef7eb2e8f9f7 72 * \hideinitializer
<> 144:ef7eb2e8f9f7 73 */
<> 144:ef7eb2e8f9f7 74 #define WDT_CLEAR_TIMEOUT_WAKEUP_FLAG() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk)) | WDT_CTL_WKF_Msk)
<> 144:ef7eb2e8f9f7 75
<> 144:ef7eb2e8f9f7 76 /**
<> 144:ef7eb2e8f9f7 77 * @brief This macro indicate WDT time-out to reset system or not.
<> 144:ef7eb2e8f9f7 78 * @return WDT reset system or not
<> 144:ef7eb2e8f9f7 79 * @retval 0 WDT did not cause system reset
<> 144:ef7eb2e8f9f7 80 * @retval 1 WDT caused system reset
<> 144:ef7eb2e8f9f7 81 * \hideinitializer
<> 144:ef7eb2e8f9f7 82 */
<> 144:ef7eb2e8f9f7 83 #define WDT_GET_RESET_FLAG() (WDT->CTL & WDT_CTL_RSTF_Msk ? 1 : 0)
<> 144:ef7eb2e8f9f7 84
<> 144:ef7eb2e8f9f7 85 /**
<> 144:ef7eb2e8f9f7 86 * @brief This macro indicate WDT time-out interrupt occurred or not.
<> 144:ef7eb2e8f9f7 87 * @return WDT time-out interrupt occurred or not
<> 144:ef7eb2e8f9f7 88 * @retval 0 WDT time-out interrupt did not occur
<> 144:ef7eb2e8f9f7 89 * @retval 1 WDT time-out interrupt occurred
<> 144:ef7eb2e8f9f7 90 * \hideinitializer
<> 144:ef7eb2e8f9f7 91 */
<> 144:ef7eb2e8f9f7 92 #define WDT_GET_TIMEOUT_INT_FLAG() (WDT->CTL & WDT_CTL_IF_Msk ? 1 : 0)
<> 144:ef7eb2e8f9f7 93
<> 144:ef7eb2e8f9f7 94 /**
<> 144:ef7eb2e8f9f7 95 * @brief This macro indicate WDT time-out waked system up or not
<> 144:ef7eb2e8f9f7 96 * @return WDT time-out waked system up or not
<> 144:ef7eb2e8f9f7 97 * @retval 0 WDT did not wake up system
<> 144:ef7eb2e8f9f7 98 * @retval 1 WDT waked up system
<> 144:ef7eb2e8f9f7 99 * \hideinitializer
<> 144:ef7eb2e8f9f7 100 */
<> 144:ef7eb2e8f9f7 101 #define WDT_GET_TIMEOUT_WAKEUP_FLAG() (WDT->CTL & WDT_CTL_WKF_Msk ? 1 : 0)
<> 144:ef7eb2e8f9f7 102
<> 144:ef7eb2e8f9f7 103 /**
<> 144:ef7eb2e8f9f7 104 * @brief This macro is used to reset 18-bit WDT counter.
<> 144:ef7eb2e8f9f7 105 * @details If WDT is activated and enabled to reset system, software must reset WDT counter
<> 144:ef7eb2e8f9f7 106 * before WDT time-out plus reset delay reached. Or WDT generate a reset signal.
<> 144:ef7eb2e8f9f7 107 * \hideinitializer
<> 144:ef7eb2e8f9f7 108 */
<> 144:ef7eb2e8f9f7 109 #define WDT_RESET_COUNTER() (WDT->CTL = (WDT->CTL & ~(WDT_CTL_IF_Msk | WDT_CTL_WKF_Msk | WDT_CTL_RSTF_Msk)) | WDT_CTL_RSTCNT_Msk)
<> 144:ef7eb2e8f9f7 110
<> 144:ef7eb2e8f9f7 111 /**
<> 144:ef7eb2e8f9f7 112 * @brief This function stops WDT counting and disable WDT module
<> 144:ef7eb2e8f9f7 113 * @param None
<> 144:ef7eb2e8f9f7 114 * @return None
<> 144:ef7eb2e8f9f7 115 */
<> 144:ef7eb2e8f9f7 116 __STATIC_INLINE void WDT_Close(void)
<> 144:ef7eb2e8f9f7 117 {
<> 144:ef7eb2e8f9f7 118 WDT->CTL = 0;
<> 144:ef7eb2e8f9f7 119 return;
<> 144:ef7eb2e8f9f7 120 }
<> 144:ef7eb2e8f9f7 121
<> 144:ef7eb2e8f9f7 122 /**
<> 144:ef7eb2e8f9f7 123 * @brief This function enables the WDT time-out interrupt
<> 144:ef7eb2e8f9f7 124 * @param None
<> 144:ef7eb2e8f9f7 125 * @return None
<> 144:ef7eb2e8f9f7 126 */
<> 144:ef7eb2e8f9f7 127 __STATIC_INLINE void WDT_EnableInt(void)
<> 144:ef7eb2e8f9f7 128 {
<> 144:ef7eb2e8f9f7 129 WDT->CTL |= WDT_CTL_INTEN_Msk;
<> 144:ef7eb2e8f9f7 130 return;
<> 144:ef7eb2e8f9f7 131 }
<> 144:ef7eb2e8f9f7 132
<> 144:ef7eb2e8f9f7 133 /**
<> 144:ef7eb2e8f9f7 134 * @brief This function disables the WDT time-out interrupt
<> 144:ef7eb2e8f9f7 135 * @param None
<> 144:ef7eb2e8f9f7 136 * @return None
<> 144:ef7eb2e8f9f7 137 */
<> 144:ef7eb2e8f9f7 138 __STATIC_INLINE void WDT_DisableInt(void)
<> 144:ef7eb2e8f9f7 139 {
<> 144:ef7eb2e8f9f7 140 // Do not touch write 1 clear bits
<> 144:ef7eb2e8f9f7 141 WDT->CTL &= ~(WDT_CTL_INTEN_Msk | WDT_CTL_RSTF_Msk | WDT_CTL_IF_Msk) ;
<> 144:ef7eb2e8f9f7 142 return;
<> 144:ef7eb2e8f9f7 143 }
<> 144:ef7eb2e8f9f7 144
<> 144:ef7eb2e8f9f7 145 void WDT_Open(uint32_t u32TimeoutInterval,
<> 144:ef7eb2e8f9f7 146 uint32_t u32ResetDelay,
<> 144:ef7eb2e8f9f7 147 uint32_t u32EnableReset,
<> 144:ef7eb2e8f9f7 148 uint32_t u32EnableWakeup);
<> 144:ef7eb2e8f9f7 149
<> 144:ef7eb2e8f9f7 150 /*@}*/ /* end of group NUC472_442_WDT_EXPORTED_FUNCTIONS */
<> 144:ef7eb2e8f9f7 151
<> 144:ef7eb2e8f9f7 152 /*@}*/ /* end of group NUC472_442_WDT_Driver */
<> 144:ef7eb2e8f9f7 153
<> 144:ef7eb2e8f9f7 154 /*@}*/ /* end of group NUC472_442_Device_Driver */
<> 144:ef7eb2e8f9f7 155
<> 144:ef7eb2e8f9f7 156 #ifdef __cplusplus
<> 144:ef7eb2e8f9f7 157 }
<> 144:ef7eb2e8f9f7 158 #endif
<> 144:ef7eb2e8f9f7 159
<> 144:ef7eb2e8f9f7 160 #endif //__WDT_H__
<> 144:ef7eb2e8f9f7 161
<> 144:ef7eb2e8f9f7 162 /*** (C) COPYRIGHT 2013 Nuvoton Technology Corp. ***/