Fork of Smoothie to port to mbed non-LPC targets.
Fork of Smoothie by
libs/LPC17xx/LPC17xxLib/src/lpc17xx_wdt.c@2:1df0b61d3b5a, 2014-02-28 (annotated)
- Committer:
- Michael J. Spencer
- Date:
- Fri Feb 28 18:52:52 2014 -0800
- Revision:
- 2:1df0b61d3b5a
Update to latest Smoothie.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Michael J. Spencer |
2:1df0b61d3b5a | 1 | #ifdef __LPC17XX__ |
Michael J. Spencer |
2:1df0b61d3b5a | 2 | |
Michael J. Spencer |
2:1df0b61d3b5a | 3 | /********************************************************************** |
Michael J. Spencer |
2:1df0b61d3b5a | 4 | * $Id$ lpc17xx_wdt.c 2010-05-21 |
Michael J. Spencer |
2:1df0b61d3b5a | 5 | *//** |
Michael J. Spencer |
2:1df0b61d3b5a | 6 | * @file lpc17xx_wdt.c |
Michael J. Spencer |
2:1df0b61d3b5a | 7 | * @brief Contains all functions support for WDT firmware library |
Michael J. Spencer |
2:1df0b61d3b5a | 8 | * on LPC17xx |
Michael J. Spencer |
2:1df0b61d3b5a | 9 | * @version 2.0 |
Michael J. Spencer |
2:1df0b61d3b5a | 10 | * @date 21. May. 2010 |
Michael J. Spencer |
2:1df0b61d3b5a | 11 | * @author NXP MCU SW Application Team |
Michael J. Spencer |
2:1df0b61d3b5a | 12 | * |
Michael J. Spencer |
2:1df0b61d3b5a | 13 | * Copyright(C) 2010, NXP Semiconductor |
Michael J. Spencer |
2:1df0b61d3b5a | 14 | * All rights reserved. |
Michael J. Spencer |
2:1df0b61d3b5a | 15 | * |
Michael J. Spencer |
2:1df0b61d3b5a | 16 | *********************************************************************** |
Michael J. Spencer |
2:1df0b61d3b5a | 17 | * Software that is described herein is for illustrative purposes only |
Michael J. Spencer |
2:1df0b61d3b5a | 18 | * which provides customers with programming information regarding the |
Michael J. Spencer |
2:1df0b61d3b5a | 19 | * products. This software is supplied "AS IS" without any warranties. |
Michael J. Spencer |
2:1df0b61d3b5a | 20 | * NXP Semiconductors assumes no responsibility or liability for the |
Michael J. Spencer |
2:1df0b61d3b5a | 21 | * use of the software, conveys no license or title under any patent, |
Michael J. Spencer |
2:1df0b61d3b5a | 22 | * copyright, or mask work right to the product. NXP Semiconductors |
Michael J. Spencer |
2:1df0b61d3b5a | 23 | * reserves the right to make changes in the software without |
Michael J. Spencer |
2:1df0b61d3b5a | 24 | * notification. NXP Semiconductors also make no representation or |
Michael J. Spencer |
2:1df0b61d3b5a | 25 | * warranty that such application will be suitable for the specified |
Michael J. Spencer |
2:1df0b61d3b5a | 26 | * use without further testing or modification. |
Michael J. Spencer |
2:1df0b61d3b5a | 27 | **********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 28 | |
Michael J. Spencer |
2:1df0b61d3b5a | 29 | /* Peripheral group ----------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 30 | /** @addtogroup WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 31 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 32 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 33 | |
Michael J. Spencer |
2:1df0b61d3b5a | 34 | /* Includes ------------------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 35 | #include "lpc17xx_wdt.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 36 | #include "lpc17xx_clkpwr.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 37 | #include "lpc17xx_pinsel.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 38 | |
Michael J. Spencer |
2:1df0b61d3b5a | 39 | |
Michael J. Spencer |
2:1df0b61d3b5a | 40 | /* If this source file built with example, the LPC17xx FW library configuration |
Michael J. Spencer |
2:1df0b61d3b5a | 41 | * file in each example directory ("lpc17xx_libcfg.h") must be included, |
Michael J. Spencer |
2:1df0b61d3b5a | 42 | * otherwise the default FW library configuration file must be included instead |
Michael J. Spencer |
2:1df0b61d3b5a | 43 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 44 | #ifdef __BUILD_WITH_EXAMPLE__ |
Michael J. Spencer |
2:1df0b61d3b5a | 45 | #include "lpc17xx_libcfg.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 46 | #else |
Michael J. Spencer |
2:1df0b61d3b5a | 47 | #include "lpc17xx_libcfg_default.h" |
Michael J. Spencer |
2:1df0b61d3b5a | 48 | #endif /* __BUILD_WITH_EXAMPLE__ */ |
Michael J. Spencer |
2:1df0b61d3b5a | 49 | |
Michael J. Spencer |
2:1df0b61d3b5a | 50 | |
Michael J. Spencer |
2:1df0b61d3b5a | 51 | #ifdef _WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 52 | |
Michael J. Spencer |
2:1df0b61d3b5a | 53 | /* Private Functions ---------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 54 | |
Michael J. Spencer |
2:1df0b61d3b5a | 55 | static uint8_t WDT_SetTimeOut (uint8_t clk_source, uint32_t timeout); |
Michael J. Spencer |
2:1df0b61d3b5a | 56 | |
Michael J. Spencer |
2:1df0b61d3b5a | 57 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 58 | * @brief Set WDT time out value and WDT mode |
Michael J. Spencer |
2:1df0b61d3b5a | 59 | * @param[in] clk_source select Clock source for WDT device |
Michael J. Spencer |
2:1df0b61d3b5a | 60 | * @param[in] timeout value of time-out for WDT (us) |
Michael J. Spencer |
2:1df0b61d3b5a | 61 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 62 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 63 | static uint8_t WDT_SetTimeOut (uint8_t clk_source, uint32_t timeout) |
Michael J. Spencer |
2:1df0b61d3b5a | 64 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 65 | |
Michael J. Spencer |
2:1df0b61d3b5a | 66 | uint32_t pclk_wdt = 0; |
Michael J. Spencer |
2:1df0b61d3b5a | 67 | uint32_t tempval = 0; |
Michael J. Spencer |
2:1df0b61d3b5a | 68 | |
Michael J. Spencer |
2:1df0b61d3b5a | 69 | switch ((WDT_CLK_OPT) clk_source) |
Michael J. Spencer |
2:1df0b61d3b5a | 70 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 71 | case WDT_CLKSRC_IRC: |
Michael J. Spencer |
2:1df0b61d3b5a | 72 | pclk_wdt = 4000000; |
Michael J. Spencer |
2:1df0b61d3b5a | 73 | // Calculate TC in WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 74 | tempval = (((pclk_wdt) / WDT_US_INDEX) * (timeout / 4)); |
Michael J. Spencer |
2:1df0b61d3b5a | 75 | // Check if it valid |
Michael J. Spencer |
2:1df0b61d3b5a | 76 | if ((tempval >= WDT_TIMEOUT_MIN) && (tempval <= WDT_TIMEOUT_MAX)) |
Michael J. Spencer |
2:1df0b61d3b5a | 77 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 78 | LPC_WDT->WDTC = tempval; |
Michael J. Spencer |
2:1df0b61d3b5a | 79 | return SUCCESS; |
Michael J. Spencer |
2:1df0b61d3b5a | 80 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 81 | |
Michael J. Spencer |
2:1df0b61d3b5a | 82 | break; |
Michael J. Spencer |
2:1df0b61d3b5a | 83 | |
Michael J. Spencer |
2:1df0b61d3b5a | 84 | case WDT_CLKSRC_PCLK: |
Michael J. Spencer |
2:1df0b61d3b5a | 85 | |
Michael J. Spencer |
2:1df0b61d3b5a | 86 | // Get WDT clock with CCLK divider = 4 |
Michael J. Spencer |
2:1df0b61d3b5a | 87 | pclk_wdt = SystemCoreClock / 4; |
Michael J. Spencer |
2:1df0b61d3b5a | 88 | // Calculate TC in WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 89 | tempval = (((pclk_wdt) / WDT_US_INDEX) * (timeout / 4)); |
Michael J. Spencer |
2:1df0b61d3b5a | 90 | |
Michael J. Spencer |
2:1df0b61d3b5a | 91 | if ((tempval >= WDT_TIMEOUT_MIN) && (tempval <= WDT_TIMEOUT_MAX)) |
Michael J. Spencer |
2:1df0b61d3b5a | 92 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 93 | CLKPWR_SetPCLKDiv (CLKPWR_PCLKSEL_WDT, CLKPWR_PCLKSEL_CCLK_DIV_4); |
Michael J. Spencer |
2:1df0b61d3b5a | 94 | LPC_WDT->WDTC = (uint32_t) tempval; |
Michael J. Spencer |
2:1df0b61d3b5a | 95 | return SUCCESS; |
Michael J. Spencer |
2:1df0b61d3b5a | 96 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 97 | |
Michael J. Spencer |
2:1df0b61d3b5a | 98 | // Get WDT clock with CCLK divider = 2 |
Michael J. Spencer |
2:1df0b61d3b5a | 99 | pclk_wdt = SystemCoreClock / 2; |
Michael J. Spencer |
2:1df0b61d3b5a | 100 | // Calculate TC in WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 101 | tempval = (((pclk_wdt) / WDT_US_INDEX) * (timeout / 4)); |
Michael J. Spencer |
2:1df0b61d3b5a | 102 | |
Michael J. Spencer |
2:1df0b61d3b5a | 103 | if ((tempval >= WDT_TIMEOUT_MIN) && (tempval <= WDT_TIMEOUT_MAX)) |
Michael J. Spencer |
2:1df0b61d3b5a | 104 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 105 | CLKPWR_SetPCLKDiv (CLKPWR_PCLKSEL_WDT, CLKPWR_PCLKSEL_CCLK_DIV_2); |
Michael J. Spencer |
2:1df0b61d3b5a | 106 | LPC_WDT->WDTC = (uint32_t) tempval; |
Michael J. Spencer |
2:1df0b61d3b5a | 107 | return SUCCESS; |
Michael J. Spencer |
2:1df0b61d3b5a | 108 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 109 | |
Michael J. Spencer |
2:1df0b61d3b5a | 110 | // Get WDT clock with CCLK divider = 1 |
Michael J. Spencer |
2:1df0b61d3b5a | 111 | pclk_wdt = SystemCoreClock; |
Michael J. Spencer |
2:1df0b61d3b5a | 112 | // Calculate TC in WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 113 | tempval = (((pclk_wdt) / WDT_US_INDEX) * (timeout / 4)); |
Michael J. Spencer |
2:1df0b61d3b5a | 114 | |
Michael J. Spencer |
2:1df0b61d3b5a | 115 | if ((tempval >= WDT_TIMEOUT_MIN) && (tempval <= WDT_TIMEOUT_MAX)) |
Michael J. Spencer |
2:1df0b61d3b5a | 116 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 117 | CLKPWR_SetPCLKDiv (CLKPWR_PCLKSEL_WDT, CLKPWR_PCLKSEL_CCLK_DIV_1); |
Michael J. Spencer |
2:1df0b61d3b5a | 118 | LPC_WDT->WDTC = (uint32_t) tempval; |
Michael J. Spencer |
2:1df0b61d3b5a | 119 | return SUCCESS; |
Michael J. Spencer |
2:1df0b61d3b5a | 120 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 121 | break ; |
Michael J. Spencer |
2:1df0b61d3b5a | 122 | |
Michael J. Spencer |
2:1df0b61d3b5a | 123 | |
Michael J. Spencer |
2:1df0b61d3b5a | 124 | case WDT_CLKSRC_RTC: |
Michael J. Spencer |
2:1df0b61d3b5a | 125 | pclk_wdt = 32768; |
Michael J. Spencer |
2:1df0b61d3b5a | 126 | // Calculate TC in WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 127 | tempval = (((pclk_wdt) / WDT_US_INDEX) * (timeout / 4)); |
Michael J. Spencer |
2:1df0b61d3b5a | 128 | // Check if it valid |
Michael J. Spencer |
2:1df0b61d3b5a | 129 | if ((tempval >= WDT_TIMEOUT_MIN) && (tempval <= WDT_TIMEOUT_MAX)) |
Michael J. Spencer |
2:1df0b61d3b5a | 130 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 131 | LPC_WDT->WDTC = (uint32_t) tempval; |
Michael J. Spencer |
2:1df0b61d3b5a | 132 | return SUCCESS; |
Michael J. Spencer |
2:1df0b61d3b5a | 133 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 134 | |
Michael J. Spencer |
2:1df0b61d3b5a | 135 | break; |
Michael J. Spencer |
2:1df0b61d3b5a | 136 | |
Michael J. Spencer |
2:1df0b61d3b5a | 137 | // Error parameter |
Michael J. Spencer |
2:1df0b61d3b5a | 138 | default: |
Michael J. Spencer |
2:1df0b61d3b5a | 139 | break; |
Michael J. Spencer |
2:1df0b61d3b5a | 140 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 141 | |
Michael J. Spencer |
2:1df0b61d3b5a | 142 | return ERROR; |
Michael J. Spencer |
2:1df0b61d3b5a | 143 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 144 | |
Michael J. Spencer |
2:1df0b61d3b5a | 145 | /* End of Private Functions --------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 146 | |
Michael J. Spencer |
2:1df0b61d3b5a | 147 | |
Michael J. Spencer |
2:1df0b61d3b5a | 148 | /* Public Functions ----------------------------------------------------------- */ |
Michael J. Spencer |
2:1df0b61d3b5a | 149 | /** @addtogroup WDT_Public_Functions |
Michael J. Spencer |
2:1df0b61d3b5a | 150 | * @{ |
Michael J. Spencer |
2:1df0b61d3b5a | 151 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 152 | |
Michael J. Spencer |
2:1df0b61d3b5a | 153 | |
Michael J. Spencer |
2:1df0b61d3b5a | 154 | /*********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 155 | * @brief Initial for Watchdog function |
Michael J. Spencer |
2:1df0b61d3b5a | 156 | * Clock source = RTC , |
Michael J. Spencer |
2:1df0b61d3b5a | 157 | * @param[in] ClkSrc Select clock source, should be: |
Michael J. Spencer |
2:1df0b61d3b5a | 158 | * - WDT_CLKSRC_IRC: Clock source from Internal RC oscillator |
Michael J. Spencer |
2:1df0b61d3b5a | 159 | * - WDT_CLKSRC_PCLK: Selects the APB peripheral clock (PCLK) |
Michael J. Spencer |
2:1df0b61d3b5a | 160 | * - WDT_CLKSRC_RTC: Selects the RTC oscillator |
Michael J. Spencer |
2:1df0b61d3b5a | 161 | * @param[in] WDTMode WDT mode, should be: |
Michael J. Spencer |
2:1df0b61d3b5a | 162 | * - WDT_MODE_INT_ONLY: Use WDT to generate interrupt only |
Michael J. Spencer |
2:1df0b61d3b5a | 163 | * - WDT_MODE_RESET: Use WDT to generate interrupt and reset MCU |
Michael J. Spencer |
2:1df0b61d3b5a | 164 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 165 | **********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 166 | void WDT_Init (WDT_CLK_OPT ClkSrc, WDT_MODE_OPT WDTMode) |
Michael J. Spencer |
2:1df0b61d3b5a | 167 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 168 | CHECK_PARAM(PARAM_WDT_CLK_OPT(ClkSrc)); |
Michael J. Spencer |
2:1df0b61d3b5a | 169 | CHECK_PARAM(PARAM_WDT_MODE_OPT(WDTMode)); |
Michael J. Spencer |
2:1df0b61d3b5a | 170 | CLKPWR_SetPCLKDiv (CLKPWR_PCLKSEL_WDT, CLKPWR_PCLKSEL_CCLK_DIV_4); |
Michael J. Spencer |
2:1df0b61d3b5a | 171 | |
Michael J. Spencer |
2:1df0b61d3b5a | 172 | //Set clock source |
Michael J. Spencer |
2:1df0b61d3b5a | 173 | LPC_WDT->WDCLKSEL &= ~WDT_WDCLKSEL_MASK; |
Michael J. Spencer |
2:1df0b61d3b5a | 174 | LPC_WDT->WDCLKSEL |= ClkSrc; |
Michael J. Spencer |
2:1df0b61d3b5a | 175 | //Set WDT mode |
Michael J. Spencer |
2:1df0b61d3b5a | 176 | if (WDTMode == WDT_MODE_RESET){ |
Michael J. Spencer |
2:1df0b61d3b5a | 177 | LPC_WDT->WDMOD |= WDT_WDMOD(WDTMode); |
Michael J. Spencer |
2:1df0b61d3b5a | 178 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 179 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 180 | |
Michael J. Spencer |
2:1df0b61d3b5a | 181 | /*********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 182 | * @brief Start WDT activity with given timeout value |
Michael J. Spencer |
2:1df0b61d3b5a | 183 | * @param[in] TimeOut WDT reset after timeout if it is not feed |
Michael J. Spencer |
2:1df0b61d3b5a | 184 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 185 | **********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 186 | void WDT_Start(uint32_t TimeOut) |
Michael J. Spencer |
2:1df0b61d3b5a | 187 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 188 | uint32_t ClkSrc; |
Michael J. Spencer |
2:1df0b61d3b5a | 189 | |
Michael J. Spencer |
2:1df0b61d3b5a | 190 | ClkSrc = LPC_WDT->WDCLKSEL; |
Michael J. Spencer |
2:1df0b61d3b5a | 191 | ClkSrc &=WDT_WDCLKSEL_MASK; |
Michael J. Spencer |
2:1df0b61d3b5a | 192 | WDT_SetTimeOut(ClkSrc,TimeOut); |
Michael J. Spencer |
2:1df0b61d3b5a | 193 | //enable watchdog |
Michael J. Spencer |
2:1df0b61d3b5a | 194 | LPC_WDT->WDMOD |= WDT_WDMOD_WDEN; |
Michael J. Spencer |
2:1df0b61d3b5a | 195 | WDT_Feed(); |
Michael J. Spencer |
2:1df0b61d3b5a | 196 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 197 | |
Michael J. Spencer |
2:1df0b61d3b5a | 198 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 199 | * @brief Read WDT Time out flag |
Michael J. Spencer |
2:1df0b61d3b5a | 200 | * @param[in] None |
Michael J. Spencer |
2:1df0b61d3b5a | 201 | * @return Time out flag status of WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 202 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 203 | FlagStatus WDT_ReadTimeOutFlag (void) |
Michael J. Spencer |
2:1df0b61d3b5a | 204 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 205 | return ((FlagStatus)((LPC_WDT->WDMOD & WDT_WDMOD_WDTOF) >>2)); |
Michael J. Spencer |
2:1df0b61d3b5a | 206 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 207 | |
Michael J. Spencer |
2:1df0b61d3b5a | 208 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 209 | * @brief Clear WDT Time out flag |
Michael J. Spencer |
2:1df0b61d3b5a | 210 | * @param[in] None |
Michael J. Spencer |
2:1df0b61d3b5a | 211 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 212 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 213 | void WDT_ClrTimeOutFlag (void) |
Michael J. Spencer |
2:1df0b61d3b5a | 214 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 215 | LPC_WDT->WDMOD &=~WDT_WDMOD_WDTOF; |
Michael J. Spencer |
2:1df0b61d3b5a | 216 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 217 | |
Michael J. Spencer |
2:1df0b61d3b5a | 218 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 219 | * @brief Update WDT timeout value and feed |
Michael J. Spencer |
2:1df0b61d3b5a | 220 | * @param[in] TimeOut TimeOut value to be updated |
Michael J. Spencer |
2:1df0b61d3b5a | 221 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 222 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 223 | void WDT_UpdateTimeOut ( uint32_t TimeOut) |
Michael J. Spencer |
2:1df0b61d3b5a | 224 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 225 | uint32_t ClkSrc; |
Michael J. Spencer |
2:1df0b61d3b5a | 226 | ClkSrc = LPC_WDT->WDCLKSEL; |
Michael J. Spencer |
2:1df0b61d3b5a | 227 | ClkSrc &=WDT_WDCLKSEL_MASK; |
Michael J. Spencer |
2:1df0b61d3b5a | 228 | WDT_SetTimeOut(ClkSrc,TimeOut); |
Michael J. Spencer |
2:1df0b61d3b5a | 229 | WDT_Feed(); |
Michael J. Spencer |
2:1df0b61d3b5a | 230 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 231 | |
Michael J. Spencer |
2:1df0b61d3b5a | 232 | |
Michael J. Spencer |
2:1df0b61d3b5a | 233 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 234 | * @brief After set WDTEN, call this function to start Watchdog |
Michael J. Spencer |
2:1df0b61d3b5a | 235 | * or reload the Watchdog timer |
Michael J. Spencer |
2:1df0b61d3b5a | 236 | * @param[in] None |
Michael J. Spencer |
2:1df0b61d3b5a | 237 | * |
Michael J. Spencer |
2:1df0b61d3b5a | 238 | * @return None |
Michael J. Spencer |
2:1df0b61d3b5a | 239 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 240 | void WDT_Feed (void) |
Michael J. Spencer |
2:1df0b61d3b5a | 241 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 242 | // Disable irq interrupt |
Michael J. Spencer |
2:1df0b61d3b5a | 243 | __disable_irq(); |
Michael J. Spencer |
2:1df0b61d3b5a | 244 | LPC_WDT->WDFEED = 0xAA; |
Michael J. Spencer |
2:1df0b61d3b5a | 245 | LPC_WDT->WDFEED = 0x55; |
Michael J. Spencer |
2:1df0b61d3b5a | 246 | // Then enable irq interrupt |
Michael J. Spencer |
2:1df0b61d3b5a | 247 | __enable_irq(); |
Michael J. Spencer |
2:1df0b61d3b5a | 248 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 249 | |
Michael J. Spencer |
2:1df0b61d3b5a | 250 | /********************************************************************//** |
Michael J. Spencer |
2:1df0b61d3b5a | 251 | * @brief Get the current value of WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 252 | * @param[in] None |
Michael J. Spencer |
2:1df0b61d3b5a | 253 | * @return current value of WDT |
Michael J. Spencer |
2:1df0b61d3b5a | 254 | *********************************************************************/ |
Michael J. Spencer |
2:1df0b61d3b5a | 255 | uint32_t WDT_GetCurrentCount(void) |
Michael J. Spencer |
2:1df0b61d3b5a | 256 | { |
Michael J. Spencer |
2:1df0b61d3b5a | 257 | return LPC_WDT->WDTV; |
Michael J. Spencer |
2:1df0b61d3b5a | 258 | } |
Michael J. Spencer |
2:1df0b61d3b5a | 259 | |
Michael J. Spencer |
2:1df0b61d3b5a | 260 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 261 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 262 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 263 | |
Michael J. Spencer |
2:1df0b61d3b5a | 264 | #endif /* _WDT */ |
Michael J. Spencer |
2:1df0b61d3b5a | 265 | |
Michael J. Spencer |
2:1df0b61d3b5a | 266 | /** |
Michael J. Spencer |
2:1df0b61d3b5a | 267 | * @} |
Michael J. Spencer |
2:1df0b61d3b5a | 268 | */ |
Michael J. Spencer |
2:1df0b61d3b5a | 269 | |
Michael J. Spencer |
2:1df0b61d3b5a | 270 | /* --------------------------------- End Of File ------------------------------ */ |
Michael J. Spencer |
2:1df0b61d3b5a | 271 | #endif /* __LPC17XX__ */ |