added prescaler for 16 bit pwm in LPC1347 target

Fork of mbed-dev by mbed official

Committer:
JojoS
Date:
Sat Sep 10 15:32:04 2016 +0000
Revision:
147:ba84b7dc41a7
Parent:
107:414e9c822e99
added prescaler for 16 bit timers (solution as in LPC11xx), default prescaler 31 for max 28 ms period time

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 107:414e9c822e99 1 /**
mbed_official 107:414e9c822e99 2 * \file
mbed_official 107:414e9c822e99 3 *
mbed_official 107:414e9c822e99 4 * \brief Sleep mode access
mbed_official 107:414e9c822e99 5 *
mbed_official 107:414e9c822e99 6 * Copyright (c) 2012-2015 Atmel Corporation. All rights reserved.
mbed_official 107:414e9c822e99 7 *
mbed_official 107:414e9c822e99 8 * \asf_license_start
mbed_official 107:414e9c822e99 9 *
mbed_official 107:414e9c822e99 10 * \page License
mbed_official 107:414e9c822e99 11 *
mbed_official 107:414e9c822e99 12 * Redistribution and use in source and binary forms, with or without
mbed_official 107:414e9c822e99 13 * modification, are permitted provided that the following conditions are met:
mbed_official 107:414e9c822e99 14 *
mbed_official 107:414e9c822e99 15 * 1. Redistributions of source code must retain the above copyright notice,
mbed_official 107:414e9c822e99 16 * this list of conditions and the following disclaimer.
mbed_official 107:414e9c822e99 17 *
mbed_official 107:414e9c822e99 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
mbed_official 107:414e9c822e99 19 * this list of conditions and the following disclaimer in the documentation
mbed_official 107:414e9c822e99 20 * and/or other materials provided with the distribution.
mbed_official 107:414e9c822e99 21 *
mbed_official 107:414e9c822e99 22 * 3. The name of Atmel may not be used to endorse or promote products derived
mbed_official 107:414e9c822e99 23 * from this software without specific prior written permission.
mbed_official 107:414e9c822e99 24 *
mbed_official 107:414e9c822e99 25 * 4. This software may only be redistributed and used in connection with an
mbed_official 107:414e9c822e99 26 * Atmel microcontroller product.
mbed_official 107:414e9c822e99 27 *
mbed_official 107:414e9c822e99 28 * THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR IMPLIED
mbed_official 107:414e9c822e99 29 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
mbed_official 107:414e9c822e99 30 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE
mbed_official 107:414e9c822e99 31 * EXPRESSLY AND SPECIFICALLY DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR
mbed_official 107:414e9c822e99 32 * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
mbed_official 107:414e9c822e99 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
mbed_official 107:414e9c822e99 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
mbed_official 107:414e9c822e99 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
mbed_official 107:414e9c822e99 36 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
mbed_official 107:414e9c822e99 37 * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
mbed_official 107:414e9c822e99 38 * POSSIBILITY OF SUCH DAMAGE.
mbed_official 107:414e9c822e99 39 *
mbed_official 107:414e9c822e99 40 * \asf_license_stop
mbed_official 107:414e9c822e99 41 *
mbed_official 107:414e9c822e99 42 */
mbed_official 107:414e9c822e99 43 /*
mbed_official 107:414e9c822e99 44 * Support and FAQ: visit <a href="http://www.atmel.com/design-support/">Atmel Support</a>
mbed_official 107:414e9c822e99 45 */
mbed_official 107:414e9c822e99 46
mbed_official 107:414e9c822e99 47 #ifndef SLEEP_H
mbed_official 107:414e9c822e99 48 #define SLEEP_H
mbed_official 107:414e9c822e99 49
mbed_official 107:414e9c822e99 50 #ifdef __cplusplus
mbed_official 107:414e9c822e99 51 extern "C" {
mbed_official 107:414e9c822e99 52 #endif
mbed_official 107:414e9c822e99 53
mbed_official 107:414e9c822e99 54 #include <compiler.h>
mbed_official 107:414e9c822e99 55
mbed_official 107:414e9c822e99 56 /**
mbed_official 107:414e9c822e99 57 * \defgroup sleep_group Power Manager (PM)
mbed_official 107:414e9c822e99 58 *
mbed_official 107:414e9c822e99 59 * This is a stub on the SAM Power Manager Control (PMC) for the sleepmgr
mbed_official 107:414e9c822e99 60 * service.
mbed_official 107:414e9c822e99 61 *
mbed_official 107:414e9c822e99 62 * \note To minimize the code overhead, these functions do not feature
mbed_official 107:414e9c822e99 63 * interrupt-protected access since they are likely to be called inside
mbed_official 107:414e9c822e99 64 * interrupt handlers or in applications where such protection is not
mbed_official 107:414e9c822e99 65 * necessary. If such protection is needed, it must be ensured by the calling
mbed_official 107:414e9c822e99 66 * code.
mbed_official 107:414e9c822e99 67 *
mbed_official 107:414e9c822e99 68 * @{
mbed_official 107:414e9c822e99 69 */
mbed_official 107:414e9c822e99 70
mbed_official 107:414e9c822e99 71 #if defined(__DOXYGEN__)
mbed_official 107:414e9c822e99 72 /**
mbed_official 107:414e9c822e99 73 * \brief Sets the MCU in the specified sleep mode
mbed_official 107:414e9c822e99 74 * \param sleep_mode Sleep mode to set.
mbed_official 107:414e9c822e99 75 */
mbed_official 107:414e9c822e99 76 #endif
mbed_official 107:414e9c822e99 77 /* SAM3 and SAM4 series */
mbed_official 107:414e9c822e99 78 #if (SAM3S || SAM3N || SAM3XA || SAM3U || SAM4S || SAM4E || SAM4N || SAM4C || \
mbed_official 107:414e9c822e99 79 SAM4CM || SAM4CP || SAMG || SAMV71 || SAME70)
mbed_official 107:414e9c822e99 80
mbed_official 107:414e9c822e99 81 #if (SAM3S || SAM3N || SAM3XA || SAM3U || SAM4S || SAM4E || SAM4N || SAM4C || \
mbed_official 107:414e9c822e99 82 SAM4CM || SAM4CP || SAMG55 || SAMV71 || SAME70)
mbed_official 107:414e9c822e99 83 # define SAM_PM_SMODE_ACTIVE 0 /**< Active */
mbed_official 107:414e9c822e99 84 # define SAM_PM_SMODE_SLEEP_WFE 1 /**< Wait for Events */
mbed_official 107:414e9c822e99 85 # define SAM_PM_SMODE_SLEEP_WFI 2 /**< Wait for Interrupts */
mbed_official 107:414e9c822e99 86 # define SAM_PM_SMODE_WAIT_FAST 3 /**< Wait Mode, startup fast (in 3ms) */
mbed_official 107:414e9c822e99 87 # define SAM_PM_SMODE_WAIT 4 /**< Wait Mode */
mbed_official 107:414e9c822e99 88 # define SAM_PM_SMODE_BACKUP 5 /**< Backup Mode */
mbed_official 107:414e9c822e99 89 #else
mbed_official 107:414e9c822e99 90 # define SAM_PM_SMODE_ACTIVE 0 /**< Active */
mbed_official 107:414e9c822e99 91 # define SAM_PM_SMODE_WAIT_FAST 1 /**< Wait Mode, startup fast (in 3ms) */
mbed_official 107:414e9c822e99 92 # define SAM_PM_SMODE_WAIT 2 /**< Wait Mode */
mbed_official 107:414e9c822e99 93 #endif
mbed_official 107:414e9c822e99 94
mbed_official 107:414e9c822e99 95 /** (SCR) Sleep deep bit */
mbed_official 107:414e9c822e99 96 #define SCR_SLEEPDEEP (0x1 << 2)
mbed_official 107:414e9c822e99 97
mbed_official 107:414e9c822e99 98 /**
mbed_official 107:414e9c822e99 99 * Clocks restored callback function type.
mbed_official 107:414e9c822e99 100 * Registered by routine pmc_wait_wakeup_clocks_restore()
mbed_official 107:414e9c822e99 101 * Callback called when all clocks are restored.
mbed_official 107:414e9c822e99 102 */
mbed_official 107:414e9c822e99 103 typedef void (*pmc_callback_wakeup_clocks_restored_t) (void);
mbed_official 107:414e9c822e99 104
mbed_official 107:414e9c822e99 105 /**
mbed_official 107:414e9c822e99 106 * Enter sleep mode
mbed_official 107:414e9c822e99 107 * \param sleep_mode Sleep mode to enter
mbed_official 107:414e9c822e99 108 */
mbed_official 107:414e9c822e99 109 void pmc_sleep(int sleep_mode);
mbed_official 107:414e9c822e99 110
mbed_official 107:414e9c822e99 111 /**
mbed_official 107:414e9c822e99 112 * Check if clocks are restored after wakeup
mbed_official 107:414e9c822e99 113 * (For WAIT mode. In WAIT mode, clocks are switched to FASTRC.
mbed_official 107:414e9c822e99 114 * After wakeup clocks should be restored, before that some of the
mbed_official 107:414e9c822e99 115 * ISR should not be served, otherwise there may be timing or clock issue.)
mbed_official 107:414e9c822e99 116 */
mbed_official 107:414e9c822e99 117 bool pmc_is_wakeup_clocks_restored(void);
mbed_official 107:414e9c822e99 118
mbed_official 107:414e9c822e99 119 /**
mbed_official 107:414e9c822e99 120 * \return true if start waiting
mbed_official 107:414e9c822e99 121 */
mbed_official 107:414e9c822e99 122 void pmc_wait_wakeup_clocks_restore(
mbed_official 107:414e9c822e99 123 pmc_callback_wakeup_clocks_restored_t callback);
mbed_official 107:414e9c822e99 124
mbed_official 107:414e9c822e99 125 #endif
mbed_official 107:414e9c822e99 126
mbed_official 107:414e9c822e99 127 //! @}
mbed_official 107:414e9c822e99 128
mbed_official 107:414e9c822e99 129 #ifdef __cplusplus
mbed_official 107:414e9c822e99 130 }
mbed_official 107:414e9c822e99 131 #endif
mbed_official 107:414e9c822e99 132
mbed_official 107:414e9c822e99 133 #endif /* SLEEP_H */