Date: March 20, 2011 This library is created from "LPC17xx CMSIS-Compliant Standard Peripheral Firmware Driver Library (GNU, Keil, IAR) (Jan 28, 2011)", available from NXP's website, under "All microcontrollers support documents" [[http://ics.nxp.com/support/documents/microcontrollers/?type=software]] You will need to follow [[/projects/libraries/svn/mbed/trunk/LPC1768/LPC17xx.h]] while using this library Examples provided here [[/users/frank26080115/programs/LPC1700CMSIS_Examples/]] The beautiful thing is that NXP does not place copyright protection on any of the files in here Only a few modifications are made to make it compile with the mbed online compiler, I fixed some warnings as well. This is untested as of March 20, 2011 Forum post about this library: [[/forum/mbed/topic/2030/]]

Committer:
frank26080115
Date:
Sun Mar 20 18:45:15 2011 +0000
Revision:
0:84d7747641aa

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frank26080115 0:84d7747641aa 1 /***********************************************************************//**
frank26080115 0:84d7747641aa 2 * @file lpc17xx_wdt.h
frank26080115 0:84d7747641aa 3 * @brief Contains all macro definitions and function prototypes
frank26080115 0:84d7747641aa 4 * support for WDT firmware library on LPC17xx
frank26080115 0:84d7747641aa 5 * @version 2.0
frank26080115 0:84d7747641aa 6 * @date 21. May. 2010
frank26080115 0:84d7747641aa 7 * @author NXP MCU SW Application Team
frank26080115 0:84d7747641aa 8 **************************************************************************
frank26080115 0:84d7747641aa 9 * Software that is described herein is for illustrative purposes only
frank26080115 0:84d7747641aa 10 * which provides customers with programming information regarding the
frank26080115 0:84d7747641aa 11 * products. This software is supplied "AS IS" without any warranties.
frank26080115 0:84d7747641aa 12 * NXP Semiconductors assumes no responsibility or liability for the
frank26080115 0:84d7747641aa 13 * use of the software, conveys no license or title under any patent,
frank26080115 0:84d7747641aa 14 * copyright, or mask work right to the product. NXP Semiconductors
frank26080115 0:84d7747641aa 15 * reserves the right to make changes in the software without
frank26080115 0:84d7747641aa 16 * notification. NXP Semiconductors also make no representation or
frank26080115 0:84d7747641aa 17 * warranty that such application will be suitable for the specified
frank26080115 0:84d7747641aa 18 * use without further testing or modification.
frank26080115 0:84d7747641aa 19 **************************************************************************/
frank26080115 0:84d7747641aa 20
frank26080115 0:84d7747641aa 21 /* Peripheral group ----------------------------------------------------------- */
frank26080115 0:84d7747641aa 22 /** @defgroup WDT WDT
frank26080115 0:84d7747641aa 23 * @ingroup LPC1700CMSIS_FwLib_Drivers
frank26080115 0:84d7747641aa 24 * @{
frank26080115 0:84d7747641aa 25 */
frank26080115 0:84d7747641aa 26
frank26080115 0:84d7747641aa 27 #ifndef LPC17XX_WDT_H_
frank26080115 0:84d7747641aa 28 #define LPC17XX_WDT_H_
frank26080115 0:84d7747641aa 29
frank26080115 0:84d7747641aa 30 /* Includes ------------------------------------------------------------------- */
frank26080115 0:84d7747641aa 31 #include "LPC17xx.h"
frank26080115 0:84d7747641aa 32 #include "lpc_types.h"
frank26080115 0:84d7747641aa 33
frank26080115 0:84d7747641aa 34
frank26080115 0:84d7747641aa 35 #ifdef __cplusplus
frank26080115 0:84d7747641aa 36 extern "C"
frank26080115 0:84d7747641aa 37 {
frank26080115 0:84d7747641aa 38 #endif
frank26080115 0:84d7747641aa 39
frank26080115 0:84d7747641aa 40
frank26080115 0:84d7747641aa 41 /* Private Macros ------------------------------------------------------------- */
frank26080115 0:84d7747641aa 42 /** @defgroup WDT_Private_Macros WDT Private Macros
frank26080115 0:84d7747641aa 43 * @{
frank26080115 0:84d7747641aa 44 */
frank26080115 0:84d7747641aa 45
frank26080115 0:84d7747641aa 46 /* --------------------- BIT DEFINITIONS -------------------------------------- */
frank26080115 0:84d7747641aa 47 /** WDT interrupt enable bit */
frank26080115 0:84d7747641aa 48 #define WDT_WDMOD_WDEN ((uint32_t)(1<<0))
frank26080115 0:84d7747641aa 49 /** WDT interrupt enable bit */
frank26080115 0:84d7747641aa 50 #define WDT_WDMOD_WDRESET ((uint32_t)(1<<1))
frank26080115 0:84d7747641aa 51 /** WDT time out flag bit */
frank26080115 0:84d7747641aa 52 #define WDT_WDMOD_WDTOF ((uint32_t)(1<<2))
frank26080115 0:84d7747641aa 53 /** WDT Time Out flag bit */
frank26080115 0:84d7747641aa 54 #define WDT_WDMOD_WDINT ((uint32_t)(1<<3))
frank26080115 0:84d7747641aa 55 /** WDT Mode */
frank26080115 0:84d7747641aa 56 #define WDT_WDMOD(n) ((uint32_t)(1<<1))
frank26080115 0:84d7747641aa 57
frank26080115 0:84d7747641aa 58 /** Define divider index for microsecond ( us ) */
frank26080115 0:84d7747641aa 59 #define WDT_US_INDEX ((uint32_t)(1000000))
frank26080115 0:84d7747641aa 60 /** WDT Time out minimum value */
frank26080115 0:84d7747641aa 61 #define WDT_TIMEOUT_MIN ((uint32_t)(0xFF))
frank26080115 0:84d7747641aa 62 /** WDT Time out maximum value */
frank26080115 0:84d7747641aa 63 #define WDT_TIMEOUT_MAX ((uint32_t)(0xFFFFFFFF))
frank26080115 0:84d7747641aa 64
frank26080115 0:84d7747641aa 65 /** Watchdog mode register mask */
frank26080115 0:84d7747641aa 66 #define WDT_WDMOD_MASK (uint8_t)(0x02)
frank26080115 0:84d7747641aa 67 /** Watchdog timer constant register mask */
frank26080115 0:84d7747641aa 68 #define WDT_WDTC_MASK (uint8_t)(0xFFFFFFFF)
frank26080115 0:84d7747641aa 69 /** Watchdog feed sequence register mask */
frank26080115 0:84d7747641aa 70 #define WDT_WDFEED_MASK (uint8_t)(0x000000FF)
frank26080115 0:84d7747641aa 71 /** Watchdog timer value register mask */
frank26080115 0:84d7747641aa 72 #define WDT_WDCLKSEL_MASK (uint8_t)(0x03)
frank26080115 0:84d7747641aa 73 /** Clock selected from internal RC */
frank26080115 0:84d7747641aa 74 #define WDT_WDCLKSEL_RC (uint8_t)(0x00)
frank26080115 0:84d7747641aa 75 /** Clock selected from PCLK */
frank26080115 0:84d7747641aa 76 #define WDT_WDCLKSEL_PCLK (uint8_t)(0x01)
frank26080115 0:84d7747641aa 77 /** Clock selected from external RTC */
frank26080115 0:84d7747641aa 78 #define WDT_WDCLKSEL_RTC (uint8_t)(0x02)
frank26080115 0:84d7747641aa 79
frank26080115 0:84d7747641aa 80 /* ---------------- CHECK PARAMETER DEFINITIONS ---------------------------- */
frank26080115 0:84d7747641aa 81 /* Macro check clock source selection */
frank26080115 0:84d7747641aa 82 #define PARAM_WDT_CLK_OPT(OPTION) ((OPTION ==WDT_CLKSRC_IRC)||(OPTION ==WDT_CLKSRC_IRC)\
frank26080115 0:84d7747641aa 83 ||(OPTION ==WDT_CLKSRC_IRC))
frank26080115 0:84d7747641aa 84
frank26080115 0:84d7747641aa 85 /* Macro check WDT mode */
frank26080115 0:84d7747641aa 86 #define PARAM_WDT_MODE_OPT(OPTION) ((OPTION ==WDT_MODE_INT_ONLY)||(OPTION ==WDT_MODE_RESET))
frank26080115 0:84d7747641aa 87 /**
frank26080115 0:84d7747641aa 88 * @}
frank26080115 0:84d7747641aa 89 */
frank26080115 0:84d7747641aa 90
frank26080115 0:84d7747641aa 91
frank26080115 0:84d7747641aa 92 /* Public Types --------------------------------------------------------------- */
frank26080115 0:84d7747641aa 93 /** @defgroup WDT_Public_Types WDT Public Types
frank26080115 0:84d7747641aa 94 * @{
frank26080115 0:84d7747641aa 95 */
frank26080115 0:84d7747641aa 96
frank26080115 0:84d7747641aa 97 /** @brief Clock source option for WDT */
frank26080115 0:84d7747641aa 98 typedef enum {
frank26080115 0:84d7747641aa 99 WDT_CLKSRC_IRC = 0, /*!< Clock source from Internal RC oscillator */
frank26080115 0:84d7747641aa 100 WDT_CLKSRC_PCLK = 1, /*!< Selects the APB peripheral clock (PCLK) */
frank26080115 0:84d7747641aa 101 WDT_CLKSRC_RTC = 2 /*!< Selects the RTC oscillator */
frank26080115 0:84d7747641aa 102 } WDT_CLK_OPT;
frank26080115 0:84d7747641aa 103
frank26080115 0:84d7747641aa 104 /** @brief WDT operation mode */
frank26080115 0:84d7747641aa 105 typedef enum {
frank26080115 0:84d7747641aa 106 WDT_MODE_INT_ONLY = 0, /*!< Use WDT to generate interrupt only */
frank26080115 0:84d7747641aa 107 WDT_MODE_RESET = 1 /*!< Use WDT to generate interrupt and reset MCU */
frank26080115 0:84d7747641aa 108 } WDT_MODE_OPT;
frank26080115 0:84d7747641aa 109
frank26080115 0:84d7747641aa 110 /**
frank26080115 0:84d7747641aa 111 * @}
frank26080115 0:84d7747641aa 112 */
frank26080115 0:84d7747641aa 113
frank26080115 0:84d7747641aa 114
frank26080115 0:84d7747641aa 115 /* Public Functions ----------------------------------------------------------- */
frank26080115 0:84d7747641aa 116 /** @defgroup WDT_Public_Functions WDT Public Functions
frank26080115 0:84d7747641aa 117 * @{
frank26080115 0:84d7747641aa 118 */
frank26080115 0:84d7747641aa 119
frank26080115 0:84d7747641aa 120 void WDT_Init (WDT_CLK_OPT ClkSrc, WDT_MODE_OPT WDTMode);
frank26080115 0:84d7747641aa 121 void WDT_Start(uint32_t TimeOut);
frank26080115 0:84d7747641aa 122 void WDT_Feed (void);
frank26080115 0:84d7747641aa 123 void WDT_UpdateTimeOut ( uint32_t TimeOut);
frank26080115 0:84d7747641aa 124 FlagStatus WDT_ReadTimeOutFlag (void);
frank26080115 0:84d7747641aa 125 void WDT_ClrTimeOutFlag (void);
frank26080115 0:84d7747641aa 126 uint32_t WDT_GetCurrentCount(void);
frank26080115 0:84d7747641aa 127
frank26080115 0:84d7747641aa 128 /**
frank26080115 0:84d7747641aa 129 * @}
frank26080115 0:84d7747641aa 130 */
frank26080115 0:84d7747641aa 131
frank26080115 0:84d7747641aa 132 #ifdef __cplusplus
frank26080115 0:84d7747641aa 133 }
frank26080115 0:84d7747641aa 134 #endif
frank26080115 0:84d7747641aa 135
frank26080115 0:84d7747641aa 136 #endif /* LPC17XX_WDT_H_ */
frank26080115 0:84d7747641aa 137
frank26080115 0:84d7747641aa 138 /**
frank26080115 0:84d7747641aa 139 * @}
frank26080115 0:84d7747641aa 140 */
frank26080115 0:84d7747641aa 141
frank26080115 0:84d7747641aa 142 /* --------------------------------- End Of File ------------------------------ */