added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
<>
Date:
Fri Sep 02 15:07:44 2016 +0100
Revision:
144:ef7eb2e8f9f7
Parent:
50:a417edff4437
This updates the lib to the mbed lib v125

Who changed what in which revision?

UserRevisionLine numberNew contents of line
<> 144:ef7eb2e8f9f7 1 /***************************************************************************//**
<> 144:ef7eb2e8f9f7 2 * @file em_dbg.c
<> 144:ef7eb2e8f9f7 3 * @brief Debug (DBG) Peripheral API
<> 144:ef7eb2e8f9f7 4 * @version 4.2.1
<> 144:ef7eb2e8f9f7 5 *******************************************************************************
<> 144:ef7eb2e8f9f7 6 * @section License
<> 144:ef7eb2e8f9f7 7 * <b>(C) Copyright 2015 Silicon Labs, http://www.silabs.com</b>
<> 144:ef7eb2e8f9f7 8 *******************************************************************************
<> 144:ef7eb2e8f9f7 9 *
<> 144:ef7eb2e8f9f7 10 * Permission is granted to anyone to use this software for any purpose,
<> 144:ef7eb2e8f9f7 11 * including commercial applications, and to alter it and redistribute it
<> 144:ef7eb2e8f9f7 12 * freely, subject to the following restrictions:
<> 144:ef7eb2e8f9f7 13 *
<> 144:ef7eb2e8f9f7 14 * 1. The origin of this software must not be misrepresented; you must not
<> 144:ef7eb2e8f9f7 15 * claim that you wrote the original software.
<> 144:ef7eb2e8f9f7 16 * 2. Altered source versions must be plainly marked as such, and must not be
<> 144:ef7eb2e8f9f7 17 * misrepresented as being the original software.
<> 144:ef7eb2e8f9f7 18 * 3. This notice may not be removed or altered from any source distribution.
<> 144:ef7eb2e8f9f7 19 *
<> 144:ef7eb2e8f9f7 20 * DISCLAIMER OF WARRANTY/LIMITATION OF REMEDIES: Silicon Labs has no
<> 144:ef7eb2e8f9f7 21 * obligation to support this Software. Silicon Labs is providing the
<> 144:ef7eb2e8f9f7 22 * Software "AS IS", with no express or implied warranties of any kind,
<> 144:ef7eb2e8f9f7 23 * including, but not limited to, any implied warranties of merchantability
<> 144:ef7eb2e8f9f7 24 * or fitness for any particular purpose or warranties against infringement
<> 144:ef7eb2e8f9f7 25 * of any proprietary rights of a third party.
<> 144:ef7eb2e8f9f7 26 *
<> 144:ef7eb2e8f9f7 27 * Silicon Labs will not be liable for any consequential, incidental, or
<> 144:ef7eb2e8f9f7 28 * special damages, or any other relief, or for any claim by any third party,
<> 144:ef7eb2e8f9f7 29 * arising from your use of this Software.
<> 144:ef7eb2e8f9f7 30 *
<> 144:ef7eb2e8f9f7 31 ******************************************************************************/
<> 144:ef7eb2e8f9f7 32
<> 144:ef7eb2e8f9f7 33 #include "em_dbg.h"
<> 144:ef7eb2e8f9f7 34
<> 144:ef7eb2e8f9f7 35 #if defined( CoreDebug_DHCSR_C_DEBUGEN_Msk )
<> 144:ef7eb2e8f9f7 36
<> 144:ef7eb2e8f9f7 37 #include "em_assert.h"
<> 144:ef7eb2e8f9f7 38 #include "em_cmu.h"
<> 144:ef7eb2e8f9f7 39 #include "em_gpio.h"
<> 144:ef7eb2e8f9f7 40
<> 144:ef7eb2e8f9f7 41 /***************************************************************************//**
<> 144:ef7eb2e8f9f7 42 * @addtogroup EM_Library
<> 144:ef7eb2e8f9f7 43 * @{
<> 144:ef7eb2e8f9f7 44 ******************************************************************************/
<> 144:ef7eb2e8f9f7 45
<> 144:ef7eb2e8f9f7 46 /***************************************************************************//**
<> 144:ef7eb2e8f9f7 47 * @addtogroup DBG
<> 144:ef7eb2e8f9f7 48 * @brief Debug (DBG) Peripheral API
<> 144:ef7eb2e8f9f7 49 * @{
<> 144:ef7eb2e8f9f7 50 ******************************************************************************/
<> 144:ef7eb2e8f9f7 51
<> 144:ef7eb2e8f9f7 52 /*******************************************************************************
<> 144:ef7eb2e8f9f7 53 ************************** GLOBAL FUNCTIONS *******************************
<> 144:ef7eb2e8f9f7 54 ******************************************************************************/
<> 144:ef7eb2e8f9f7 55
<> 144:ef7eb2e8f9f7 56 #if defined( GPIO_ROUTE_SWOPEN ) || defined( GPIO_ROUTEPEN_SWVPEN )
<> 144:ef7eb2e8f9f7 57 /***************************************************************************//**
<> 144:ef7eb2e8f9f7 58 * @brief
<> 144:ef7eb2e8f9f7 59 * Enable Serial Wire Output (SWO) pin.
<> 144:ef7eb2e8f9f7 60 *
<> 144:ef7eb2e8f9f7 61 * @details
<> 144:ef7eb2e8f9f7 62 * The SWO pin (sometimes denoted SWV, serial wire viewer) allows for
<> 144:ef7eb2e8f9f7 63 * miscellaneous output to be passed from the Cortex-M3 debug trace module to
<> 144:ef7eb2e8f9f7 64 * an external debug probe. By default, the debug trace module and pin output
<> 144:ef7eb2e8f9f7 65 * may be disabled.
<> 144:ef7eb2e8f9f7 66 *
<> 144:ef7eb2e8f9f7 67 * Since the SWO pin is only useful when using a debugger, a suggested use
<> 144:ef7eb2e8f9f7 68 * of this function during startup may be:
<> 144:ef7eb2e8f9f7 69 * @verbatim
<> 144:ef7eb2e8f9f7 70 * if (DBG_Connected())
<> 144:ef7eb2e8f9f7 71 * {
<> 144:ef7eb2e8f9f7 72 * DBG_SWOEnable(1);
<> 144:ef7eb2e8f9f7 73 * }
<> 144:ef7eb2e8f9f7 74 * @endverbatim
<> 144:ef7eb2e8f9f7 75 * By checking if debugger is attached, some setup leading to higher energy
<> 144:ef7eb2e8f9f7 76 * consumption when debugger is attached, can be avoided when not using
<> 144:ef7eb2e8f9f7 77 * a debugger.
<> 144:ef7eb2e8f9f7 78 *
<> 144:ef7eb2e8f9f7 79 * Another alternative may be to set the debugger tool chain to configure
<> 144:ef7eb2e8f9f7 80 * the required setup (similar to the content of this function) by some
<> 144:ef7eb2e8f9f7 81 * sort of toolchain scripting during its attach/reset procedure. In that
<> 144:ef7eb2e8f9f7 82 * case, the above suggested code for enabling the SWO pin is not required
<> 144:ef7eb2e8f9f7 83 * in the application.
<> 144:ef7eb2e8f9f7 84 *
<> 144:ef7eb2e8f9f7 85 * @param[in] location
<> 144:ef7eb2e8f9f7 86 * Pin location used for SWO pin on the application in use.
<> 144:ef7eb2e8f9f7 87 ******************************************************************************/
<> 144:ef7eb2e8f9f7 88 void DBG_SWOEnable(unsigned int location)
<> 144:ef7eb2e8f9f7 89 {
<> 144:ef7eb2e8f9f7 90 int port;
<> 144:ef7eb2e8f9f7 91 int pin;
<> 144:ef7eb2e8f9f7 92
<> 144:ef7eb2e8f9f7 93 EFM_ASSERT(location < AFCHANLOC_MAX);
<> 144:ef7eb2e8f9f7 94
<> 144:ef7eb2e8f9f7 95 #if defined ( AF_DBG_SWO_PORT )
<> 144:ef7eb2e8f9f7 96 port = AF_DBG_SWO_PORT(location);
<> 144:ef7eb2e8f9f7 97 pin = AF_DBG_SWO_PIN(location);
<> 144:ef7eb2e8f9f7 98 #elif defined (AF_DBG_SWV_PORT )
<> 144:ef7eb2e8f9f7 99 port = AF_DBG_SWV_PORT(location);
<> 144:ef7eb2e8f9f7 100 pin = AF_DBG_SWV_PIN(location);
<> 144:ef7eb2e8f9f7 101 #else
<> 144:ef7eb2e8f9f7 102 #warning "AF debug port is not defined."
<> 144:ef7eb2e8f9f7 103 #endif
<> 144:ef7eb2e8f9f7 104
<> 144:ef7eb2e8f9f7 105 /* Port/pin location not defined for device? */
<> 144:ef7eb2e8f9f7 106 if ((pin < 0) || (port < 0))
<> 144:ef7eb2e8f9f7 107 {
<> 144:ef7eb2e8f9f7 108 EFM_ASSERT(0);
<> 144:ef7eb2e8f9f7 109 return;
<> 144:ef7eb2e8f9f7 110 }
<> 144:ef7eb2e8f9f7 111
<> 144:ef7eb2e8f9f7 112 /* Ensure auxiliary clock going to the Cortex debug trace module is enabled */
<> 144:ef7eb2e8f9f7 113 CMU_OscillatorEnable(cmuOsc_AUXHFRCO, true, false);
<> 144:ef7eb2e8f9f7 114
<> 144:ef7eb2e8f9f7 115 /* Set selected pin location for SWO pin and enable it */
<> 144:ef7eb2e8f9f7 116 GPIO_DbgLocationSet(location);
<> 144:ef7eb2e8f9f7 117 GPIO_DbgSWOEnable(true);
<> 144:ef7eb2e8f9f7 118
<> 144:ef7eb2e8f9f7 119 /* Configure SWO pin for output */
<> 144:ef7eb2e8f9f7 120 GPIO_PinModeSet((GPIO_Port_TypeDef)port, pin, gpioModePushPull, 0);
<> 144:ef7eb2e8f9f7 121 }
<> 144:ef7eb2e8f9f7 122 #endif
<> 144:ef7eb2e8f9f7 123
<> 144:ef7eb2e8f9f7 124 /** @} (end addtogroup DBG) */
<> 144:ef7eb2e8f9f7 125 /** @} (end addtogroup EM_Library) */
<> 144:ef7eb2e8f9f7 126 #endif /* defined( CoreDebug_DHCSR_C_DEBUGEN_Msk ) */