Fork of Smoothie to port to mbed non-LPC targets.

Dependencies:   mbed

Fork of Smoothie by Stéphane Cachat

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?

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