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:
144:ef7eb2e8f9f7
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
<> 144:ef7eb2e8f9f7 1 /**************************************************************************//**
<> 144:ef7eb2e8f9f7 2 * @file system_LPC17xx.c
<> 144:ef7eb2e8f9f7 3 * @brief CMSIS Cortex-M3 Device System Source File for
<> 144:ef7eb2e8f9f7 4 * NXP LPC17xx Device Series
<> 144:ef7eb2e8f9f7 5 * @version V1.11
<> 144:ef7eb2e8f9f7 6 * @date 21. June 2011
<> 144:ef7eb2e8f9f7 7 *
<> 144:ef7eb2e8f9f7 8 * @note
<> 144:ef7eb2e8f9f7 9 * Copyright (C) 2009-2011 ARM Limited. All rights reserved.
<> 144:ef7eb2e8f9f7 10 *
<> 144:ef7eb2e8f9f7 11 * @par
<> 144:ef7eb2e8f9f7 12 * ARM Limited (ARM) is supplying this software for use with Cortex-M
<> 144:ef7eb2e8f9f7 13 * processor based microcontrollers. This file can be freely distributed
<> 144:ef7eb2e8f9f7 14 * within development tools that are supporting such ARM based processors.
<> 144:ef7eb2e8f9f7 15 *
<> 144:ef7eb2e8f9f7 16 * @par
<> 144:ef7eb2e8f9f7 17 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
<> 144:ef7eb2e8f9f7 18 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
<> 144:ef7eb2e8f9f7 19 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
<> 144:ef7eb2e8f9f7 20 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
<> 144:ef7eb2e8f9f7 21 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
<> 144:ef7eb2e8f9f7 22 *
<> 144:ef7eb2e8f9f7 23 ******************************************************************************/
<> 144:ef7eb2e8f9f7 24
<> 144:ef7eb2e8f9f7 25
<> 144:ef7eb2e8f9f7 26 #include <stdint.h>
<> 144:ef7eb2e8f9f7 27 #include "LPC17xx.h"
<> 144:ef7eb2e8f9f7 28
<> 144:ef7eb2e8f9f7 29
<> 144:ef7eb2e8f9f7 30 /** @addtogroup LPC17xx_System
<> 144:ef7eb2e8f9f7 31 * @{
<> 144:ef7eb2e8f9f7 32 */
<> 144:ef7eb2e8f9f7 33
<> 144:ef7eb2e8f9f7 34 /*
<> 144:ef7eb2e8f9f7 35 //-------- <<< Use Configuration Wizard in Context Menu >>> ------------------
<> 144:ef7eb2e8f9f7 36 */
<> 144:ef7eb2e8f9f7 37
<> 144:ef7eb2e8f9f7 38 /*--------------------- Clock Configuration ----------------------------------
<> 144:ef7eb2e8f9f7 39 //
<> 144:ef7eb2e8f9f7 40 // <e> Clock Configuration
<> 144:ef7eb2e8f9f7 41 // <h> System Controls and Status Register (SCS)
<> 144:ef7eb2e8f9f7 42 // <o1.4> OSCRANGE: Main Oscillator Range Select
<> 144:ef7eb2e8f9f7 43 // <0=> 1 MHz to 20 MHz
<> 144:ef7eb2e8f9f7 44 // <1=> 15 MHz to 25 MHz
<> 144:ef7eb2e8f9f7 45 // <e1.5> OSCEN: Main Oscillator Enable
<> 144:ef7eb2e8f9f7 46 // </e>
<> 144:ef7eb2e8f9f7 47 // </h>
<> 144:ef7eb2e8f9f7 48 //
<> 144:ef7eb2e8f9f7 49 // <h> Clock Source Select Register (CLKSRCSEL)
<> 144:ef7eb2e8f9f7 50 // <o2.0..1> CLKSRC: PLL Clock Source Selection
<> 144:ef7eb2e8f9f7 51 // <0=> Internal RC oscillator
<> 144:ef7eb2e8f9f7 52 // <1=> Main oscillator
<> 144:ef7eb2e8f9f7 53 // <2=> RTC oscillator
<> 144:ef7eb2e8f9f7 54 // </h>
<> 144:ef7eb2e8f9f7 55 //
<> 144:ef7eb2e8f9f7 56 // <e3> PLL0 Configuration (Main PLL)
<> 144:ef7eb2e8f9f7 57 // <h> PLL0 Configuration Register (PLL0CFG)
<> 144:ef7eb2e8f9f7 58 // <i> F_cco0 = (2 * M * F_in) / N
<> 144:ef7eb2e8f9f7 59 // <i> F_in must be in the range of 32 kHz to 50 MHz
<> 144:ef7eb2e8f9f7 60 // <i> F_cco0 must be in the range of 275 MHz to 550 MHz
<> 144:ef7eb2e8f9f7 61 // <o4.0..14> MSEL: PLL Multiplier Selection
<> 144:ef7eb2e8f9f7 62 // <6-32768><#-1>
<> 144:ef7eb2e8f9f7 63 // <i> M Value
<> 144:ef7eb2e8f9f7 64 // <o4.16..23> NSEL: PLL Divider Selection
<> 144:ef7eb2e8f9f7 65 // <1-256><#-1>
<> 144:ef7eb2e8f9f7 66 // <i> N Value
<> 144:ef7eb2e8f9f7 67 // </h>
<> 144:ef7eb2e8f9f7 68 // </e>
<> 144:ef7eb2e8f9f7 69 //
<> 144:ef7eb2e8f9f7 70 // <e5> PLL1 Configuration (USB PLL)
<> 144:ef7eb2e8f9f7 71 // <h> PLL1 Configuration Register (PLL1CFG)
<> 144:ef7eb2e8f9f7 72 // <i> F_usb = M * F_osc or F_usb = F_cco1 / (2 * P)
<> 144:ef7eb2e8f9f7 73 // <i> F_cco1 = F_osc * M * 2 * P
<> 144:ef7eb2e8f9f7 74 // <i> F_cco1 must be in the range of 156 MHz to 320 MHz
<> 144:ef7eb2e8f9f7 75 // <o6.0..4> MSEL: PLL Multiplier Selection
<> 144:ef7eb2e8f9f7 76 // <1-32><#-1>
<> 144:ef7eb2e8f9f7 77 // <i> M Value (for USB maximum value is 4)
<> 144:ef7eb2e8f9f7 78 // <o6.5..6> PSEL: PLL Divider Selection
<> 144:ef7eb2e8f9f7 79 // <0=> 1
<> 144:ef7eb2e8f9f7 80 // <1=> 2
<> 144:ef7eb2e8f9f7 81 // <2=> 4
<> 144:ef7eb2e8f9f7 82 // <3=> 8
<> 144:ef7eb2e8f9f7 83 // <i> P Value
<> 144:ef7eb2e8f9f7 84 // </h>
<> 144:ef7eb2e8f9f7 85 // </e>
<> 144:ef7eb2e8f9f7 86 //
<> 144:ef7eb2e8f9f7 87 // <h> CPU Clock Configuration Register (CCLKCFG)
<> 144:ef7eb2e8f9f7 88 // <o7.0..7> CCLKSEL: Divide Value for CPU Clock from PLL0
<> 144:ef7eb2e8f9f7 89 // <1-256><#-1>
<> 144:ef7eb2e8f9f7 90 // </h>
<> 144:ef7eb2e8f9f7 91 //
<> 144:ef7eb2e8f9f7 92 // <h> USB Clock Configuration Register (USBCLKCFG)
<> 144:ef7eb2e8f9f7 93 // <o8.0..3> USBSEL: Divide Value for USB Clock from PLL0
<> 144:ef7eb2e8f9f7 94 // <0-15>
<> 144:ef7eb2e8f9f7 95 // <i> Divide is USBSEL + 1
<> 144:ef7eb2e8f9f7 96 // </h>
<> 144:ef7eb2e8f9f7 97 //
<> 144:ef7eb2e8f9f7 98 // <h> Peripheral Clock Selection Register 0 (PCLKSEL0)
<> 144:ef7eb2e8f9f7 99 // <o9.0..1> PCLK_WDT: Peripheral Clock Selection for WDT
<> 144:ef7eb2e8f9f7 100 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 101 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 102 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 103 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 104 // <o9.2..3> PCLK_TIMER0: Peripheral Clock Selection for TIMER0
<> 144:ef7eb2e8f9f7 105 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 106 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 107 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 108 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 109 // <o9.4..5> PCLK_TIMER1: Peripheral Clock Selection for TIMER1
<> 144:ef7eb2e8f9f7 110 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 111 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 112 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 113 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 114 // <o9.6..7> PCLK_UART0: Peripheral Clock Selection for UART0
<> 144:ef7eb2e8f9f7 115 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 116 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 117 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 118 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 119 // <o9.8..9> PCLK_UART1: Peripheral Clock Selection for UART1
<> 144:ef7eb2e8f9f7 120 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 121 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 122 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 123 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 124 // <o9.12..13> PCLK_PWM1: Peripheral Clock Selection for PWM1
<> 144:ef7eb2e8f9f7 125 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 126 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 127 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 128 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 129 // <o9.14..15> PCLK_I2C0: Peripheral Clock Selection for I2C0
<> 144:ef7eb2e8f9f7 130 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 131 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 132 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 133 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 134 // <o9.16..17> PCLK_SPI: Peripheral Clock Selection for SPI
<> 144:ef7eb2e8f9f7 135 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 136 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 137 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 138 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 139 // <o9.20..21> PCLK_SSP1: Peripheral Clock Selection for SSP1
<> 144:ef7eb2e8f9f7 140 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 141 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 142 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 143 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 144 // <o9.22..23> PCLK_DAC: Peripheral Clock Selection for DAC
<> 144:ef7eb2e8f9f7 145 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 146 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 147 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 148 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 149 // <o9.24..25> PCLK_ADC: Peripheral Clock Selection for ADC
<> 144:ef7eb2e8f9f7 150 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 151 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 152 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 153 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 154 // <o9.26..27> PCLK_CAN1: Peripheral Clock Selection for CAN1
<> 144:ef7eb2e8f9f7 155 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 156 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 157 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 158 // <3=> Pclk = Hclk / 6
<> 144:ef7eb2e8f9f7 159 // <o9.28..29> PCLK_CAN2: Peripheral Clock Selection for CAN2
<> 144:ef7eb2e8f9f7 160 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 161 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 162 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 163 // <3=> Pclk = Hclk / 6
<> 144:ef7eb2e8f9f7 164 // <o9.30..31> PCLK_ACF: Peripheral Clock Selection for ACF
<> 144:ef7eb2e8f9f7 165 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 166 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 167 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 168 // <3=> Pclk = Hclk / 6
<> 144:ef7eb2e8f9f7 169 // </h>
<> 144:ef7eb2e8f9f7 170 //
<> 144:ef7eb2e8f9f7 171 // <h> Peripheral Clock Selection Register 1 (PCLKSEL1)
<> 144:ef7eb2e8f9f7 172 // <o10.0..1> PCLK_QEI: Peripheral Clock Selection for the Quadrature Encoder Interface
<> 144:ef7eb2e8f9f7 173 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 174 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 175 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 176 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 177 // <o10.2..3> PCLK_GPIO: Peripheral Clock Selection for GPIOs
<> 144:ef7eb2e8f9f7 178 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 179 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 180 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 181 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 182 // <o10.4..5> PCLK_PCB: Peripheral Clock Selection for the Pin Connect Block
<> 144:ef7eb2e8f9f7 183 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 184 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 185 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 186 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 187 // <o10.6..7> PCLK_I2C1: Peripheral Clock Selection for I2C1
<> 144:ef7eb2e8f9f7 188 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 189 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 190 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 191 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 192 // <o10.10..11> PCLK_SSP0: Peripheral Clock Selection for SSP0
<> 144:ef7eb2e8f9f7 193 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 194 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 195 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 196 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 197 // <o10.12..13> PCLK_TIMER2: Peripheral Clock Selection for TIMER2
<> 144:ef7eb2e8f9f7 198 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 199 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 200 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 201 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 202 // <o10.14..15> PCLK_TIMER3: Peripheral Clock Selection for TIMER3
<> 144:ef7eb2e8f9f7 203 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 204 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 205 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 206 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 207 // <o10.16..17> PCLK_UART2: Peripheral Clock Selection for UART2
<> 144:ef7eb2e8f9f7 208 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 209 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 210 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 211 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 212 // <o10.18..19> PCLK_UART3: Peripheral Clock Selection for UART3
<> 144:ef7eb2e8f9f7 213 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 214 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 215 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 216 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 217 // <o10.20..21> PCLK_I2C2: Peripheral Clock Selection for I2C2
<> 144:ef7eb2e8f9f7 218 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 219 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 220 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 221 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 222 // <o10.22..23> PCLK_I2S: Peripheral Clock Selection for I2S
<> 144:ef7eb2e8f9f7 223 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 224 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 225 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 226 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 227 // <o10.26..27> PCLK_RIT: Peripheral Clock Selection for the Repetitive Interrupt Timer
<> 144:ef7eb2e8f9f7 228 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 229 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 230 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 231 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 232 // <o10.28..29> PCLK_SYSCON: Peripheral Clock Selection for the System Control Block
<> 144:ef7eb2e8f9f7 233 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 234 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 235 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 236 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 237 // <o10.30..31> PCLK_MC: Peripheral Clock Selection for the Motor Control PWM
<> 144:ef7eb2e8f9f7 238 // <0=> Pclk = Cclk / 4
<> 144:ef7eb2e8f9f7 239 // <1=> Pclk = Cclk
<> 144:ef7eb2e8f9f7 240 // <2=> Pclk = Cclk / 2
<> 144:ef7eb2e8f9f7 241 // <3=> Pclk = Hclk / 8
<> 144:ef7eb2e8f9f7 242 // </h>
<> 144:ef7eb2e8f9f7 243 //
<> 144:ef7eb2e8f9f7 244 // <h> Power Control for Peripherals Register (PCONP)
<> 144:ef7eb2e8f9f7 245 // <o11.1> PCTIM0: Timer/Counter 0 power/clock enable
<> 144:ef7eb2e8f9f7 246 // <o11.2> PCTIM1: Timer/Counter 1 power/clock enable
<> 144:ef7eb2e8f9f7 247 // <o11.3> PCUART0: UART 0 power/clock enable
<> 144:ef7eb2e8f9f7 248 // <o11.4> PCUART1: UART 1 power/clock enable
<> 144:ef7eb2e8f9f7 249 // <o11.6> PCPWM1: PWM 1 power/clock enable
<> 144:ef7eb2e8f9f7 250 // <o11.7> PCI2C0: I2C interface 0 power/clock enable
<> 144:ef7eb2e8f9f7 251 // <o11.8> PCSPI: SPI interface power/clock enable
<> 144:ef7eb2e8f9f7 252 // <o11.9> PCRTC: RTC power/clock enable
<> 144:ef7eb2e8f9f7 253 // <o11.10> PCSSP1: SSP interface 1 power/clock enable
<> 144:ef7eb2e8f9f7 254 // <o11.12> PCAD: A/D converter power/clock enable
<> 144:ef7eb2e8f9f7 255 // <o11.13> PCCAN1: CAN controller 1 power/clock enable
<> 144:ef7eb2e8f9f7 256 // <o11.14> PCCAN2: CAN controller 2 power/clock enable
<> 144:ef7eb2e8f9f7 257 // <o11.15> PCGPIO: GPIOs power/clock enable
<> 144:ef7eb2e8f9f7 258 // <o11.16> PCRIT: Repetitive interrupt timer power/clock enable
<> 144:ef7eb2e8f9f7 259 // <o11.17> PCMC: Motor control PWM power/clock enable
<> 144:ef7eb2e8f9f7 260 // <o11.18> PCQEI: Quadrature encoder interface power/clock enable
<> 144:ef7eb2e8f9f7 261 // <o11.19> PCI2C1: I2C interface 1 power/clock enable
<> 144:ef7eb2e8f9f7 262 // <o11.21> PCSSP0: SSP interface 0 power/clock enable
<> 144:ef7eb2e8f9f7 263 // <o11.22> PCTIM2: Timer 2 power/clock enable
<> 144:ef7eb2e8f9f7 264 // <o11.23> PCTIM3: Timer 3 power/clock enable
<> 144:ef7eb2e8f9f7 265 // <o11.24> PCUART2: UART 2 power/clock enable
<> 144:ef7eb2e8f9f7 266 // <o11.25> PCUART3: UART 3 power/clock enable
<> 144:ef7eb2e8f9f7 267 // <o11.26> PCI2C2: I2C interface 2 power/clock enable
<> 144:ef7eb2e8f9f7 268 // <o11.27> PCI2S: I2S interface power/clock enable
<> 144:ef7eb2e8f9f7 269 // <o11.29> PCGPDMA: GP DMA function power/clock enable
<> 144:ef7eb2e8f9f7 270 // <o11.30> PCENET: Ethernet block power/clock enable
<> 144:ef7eb2e8f9f7 271 // <o11.31> PCUSB: USB interface power/clock enable
<> 144:ef7eb2e8f9f7 272 // </h>
<> 144:ef7eb2e8f9f7 273 //
<> 144:ef7eb2e8f9f7 274 // <h> Clock Output Configuration Register (CLKOUTCFG)
<> 144:ef7eb2e8f9f7 275 // <o12.0..3> CLKOUTSEL: Selects clock source for CLKOUT
<> 144:ef7eb2e8f9f7 276 // <0=> CPU clock
<> 144:ef7eb2e8f9f7 277 // <1=> Main oscillator
<> 144:ef7eb2e8f9f7 278 // <2=> Internal RC oscillator
<> 144:ef7eb2e8f9f7 279 // <3=> USB clock
<> 144:ef7eb2e8f9f7 280 // <4=> RTC oscillator
<> 144:ef7eb2e8f9f7 281 // <o12.4..7> CLKOUTDIV: Selects clock divider for CLKOUT
<> 144:ef7eb2e8f9f7 282 // <1-16><#-1>
<> 144:ef7eb2e8f9f7 283 // <o12.8> CLKOUT_EN: CLKOUT enable control
<> 144:ef7eb2e8f9f7 284 // </h>
<> 144:ef7eb2e8f9f7 285 //
<> 144:ef7eb2e8f9f7 286 // </e>
<> 144:ef7eb2e8f9f7 287 */
<> 144:ef7eb2e8f9f7 288
<> 144:ef7eb2e8f9f7 289
<> 144:ef7eb2e8f9f7 290
<> 144:ef7eb2e8f9f7 291 /** @addtogroup LPC17xx_System_Defines LPC17xx System Defines
<> 144:ef7eb2e8f9f7 292 @{
<> 144:ef7eb2e8f9f7 293 */
<> 144:ef7eb2e8f9f7 294
<> 144:ef7eb2e8f9f7 295 #define CLOCK_SETUP 1
<> 144:ef7eb2e8f9f7 296 #define SCS_Val 0x00000020
<> 144:ef7eb2e8f9f7 297 #define CLKSRCSEL_Val 0x00000001
<> 144:ef7eb2e8f9f7 298 #define PLL0_SETUP 1
<> 144:ef7eb2e8f9f7 299
<> 144:ef7eb2e8f9f7 300 #ifdef MCB1700
<> 144:ef7eb2e8f9f7 301 # define PLL0CFG_Val 0x00050063
<> 144:ef7eb2e8f9f7 302 # define PLL1_SETUP 1
<> 144:ef7eb2e8f9f7 303 # define PLL1CFG_Val 0x00000023
<> 144:ef7eb2e8f9f7 304 # define CCLKCFG_Val 0x00000003
<> 144:ef7eb2e8f9f7 305 # define USBCLKCFG_Val 0x00000000
<> 144:ef7eb2e8f9f7 306 #else
<> 144:ef7eb2e8f9f7 307 # define PLL0CFG_Val 0x0000000B
<> 144:ef7eb2e8f9f7 308 # define PLL1_SETUP 0
<> 144:ef7eb2e8f9f7 309 # define PLL1CFG_Val 0x00000000
<> 144:ef7eb2e8f9f7 310 # define CCLKCFG_Val 0x00000002
<> 144:ef7eb2e8f9f7 311 # define USBCLKCFG_Val 0x00000005
<> 144:ef7eb2e8f9f7 312 #endif
<> 144:ef7eb2e8f9f7 313
<> 144:ef7eb2e8f9f7 314 #define PCLKSEL0_Val 0x00000000
<> 144:ef7eb2e8f9f7 315 #define PCLKSEL1_Val 0x00000000
<> 144:ef7eb2e8f9f7 316 #define PCONP_Val 0x042887DE
<> 144:ef7eb2e8f9f7 317 #define CLKOUTCFG_Val 0x00000000
<> 144:ef7eb2e8f9f7 318
<> 144:ef7eb2e8f9f7 319
<> 144:ef7eb2e8f9f7 320 /*--------------------- Flash Accelerator Configuration ----------------------
<> 144:ef7eb2e8f9f7 321 //
<> 144:ef7eb2e8f9f7 322 // <e> Flash Accelerator Configuration
<> 144:ef7eb2e8f9f7 323 // <o1.12..15> FLASHTIM: Flash Access Time
<> 144:ef7eb2e8f9f7 324 // <0=> 1 CPU clock (for CPU clock up to 20 MHz)
<> 144:ef7eb2e8f9f7 325 // <1=> 2 CPU clocks (for CPU clock up to 40 MHz)
<> 144:ef7eb2e8f9f7 326 // <2=> 3 CPU clocks (for CPU clock up to 60 MHz)
<> 144:ef7eb2e8f9f7 327 // <3=> 4 CPU clocks (for CPU clock up to 80 MHz)
<> 144:ef7eb2e8f9f7 328 // <4=> 5 CPU clocks (for CPU clock up to 100 MHz)
<> 144:ef7eb2e8f9f7 329 // <5=> 6 CPU clocks (for any CPU clock)
<> 144:ef7eb2e8f9f7 330 // </e>
<> 144:ef7eb2e8f9f7 331 */
<> 144:ef7eb2e8f9f7 332 #define FLASH_SETUP 1
<> 144:ef7eb2e8f9f7 333 #define FLASHCFG_Val 0x0000303A
<> 144:ef7eb2e8f9f7 334
<> 144:ef7eb2e8f9f7 335 /*
<> 144:ef7eb2e8f9f7 336 //-------- <<< end of configuration section >>> ------------------------------
<> 144:ef7eb2e8f9f7 337 */
<> 144:ef7eb2e8f9f7 338
<> 144:ef7eb2e8f9f7 339 /*----------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 340 Check the register settings
<> 144:ef7eb2e8f9f7 341 *----------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 342 #define CHECK_RANGE(val, min, max) ((val < min) || (val > max))
<> 144:ef7eb2e8f9f7 343 #define CHECK_RSVD(val, mask) (val & mask)
<> 144:ef7eb2e8f9f7 344
<> 144:ef7eb2e8f9f7 345 /* Clock Configuration -------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 346 #if (CHECK_RSVD((SCS_Val), ~0x00000030))
<> 144:ef7eb2e8f9f7 347 #error "SCS: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 348 #endif
<> 144:ef7eb2e8f9f7 349
<> 144:ef7eb2e8f9f7 350 #if (CHECK_RANGE((CLKSRCSEL_Val), 0, 2))
<> 144:ef7eb2e8f9f7 351 #error "CLKSRCSEL: Value out of range!"
<> 144:ef7eb2e8f9f7 352 #endif
<> 144:ef7eb2e8f9f7 353
<> 144:ef7eb2e8f9f7 354 #if (CHECK_RSVD((PLL0CFG_Val), ~0x00FF7FFF))
<> 144:ef7eb2e8f9f7 355 #error "PLL0CFG: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 356 #endif
<> 144:ef7eb2e8f9f7 357
<> 144:ef7eb2e8f9f7 358 #if (CHECK_RSVD((PLL1CFG_Val), ~0x0000007F))
<> 144:ef7eb2e8f9f7 359 #error "PLL1CFG: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 360 #endif
<> 144:ef7eb2e8f9f7 361
<> 144:ef7eb2e8f9f7 362 #if (PLL0_SETUP) /* if PLL0 is used */
<> 144:ef7eb2e8f9f7 363 #if (CCLKCFG_Val < 2) /* CCLKSEL must be greater then 1 */
<> 144:ef7eb2e8f9f7 364 #error "CCLKCFG: CCLKSEL must be greater then 1 if PLL0 is used!"
<> 144:ef7eb2e8f9f7 365 #endif
<> 144:ef7eb2e8f9f7 366 #endif
<> 144:ef7eb2e8f9f7 367
<> 144:ef7eb2e8f9f7 368 #if (CHECK_RANGE((CCLKCFG_Val), 2, 255))
<> 144:ef7eb2e8f9f7 369 #error "CCLKCFG: Value out of range!"
<> 144:ef7eb2e8f9f7 370 #endif
<> 144:ef7eb2e8f9f7 371
<> 144:ef7eb2e8f9f7 372 #if (CHECK_RSVD((USBCLKCFG_Val), ~0x0000000F))
<> 144:ef7eb2e8f9f7 373 #error "USBCLKCFG: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 374 #endif
<> 144:ef7eb2e8f9f7 375
<> 144:ef7eb2e8f9f7 376 #if (CHECK_RSVD((PCLKSEL0_Val), 0x000C0C00))
<> 144:ef7eb2e8f9f7 377 #error "PCLKSEL0: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 378 #endif
<> 144:ef7eb2e8f9f7 379
<> 144:ef7eb2e8f9f7 380 #if (CHECK_RSVD((PCLKSEL1_Val), 0x03000300))
<> 144:ef7eb2e8f9f7 381 #error "PCLKSEL1: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 382 #endif
<> 144:ef7eb2e8f9f7 383
<> 144:ef7eb2e8f9f7 384 #if (CHECK_RSVD((PCONP_Val), 0x10100821))
<> 144:ef7eb2e8f9f7 385 #error "PCONP: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 386 #endif
<> 144:ef7eb2e8f9f7 387
<> 144:ef7eb2e8f9f7 388 #if (CHECK_RSVD((CLKOUTCFG_Val), ~0x000001FF))
<> 144:ef7eb2e8f9f7 389 #error "CLKOUTCFG: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 390 #endif
<> 144:ef7eb2e8f9f7 391
<> 144:ef7eb2e8f9f7 392 /* Flash Accelerator Configuration -------------------------------------------*/
<> 144:ef7eb2e8f9f7 393 #if (CHECK_RSVD((FLASHCFG_Val), ~0x0000F07F))
<> 144:ef7eb2e8f9f7 394 #error "FLASHCFG: Invalid values of reserved bits!"
<> 144:ef7eb2e8f9f7 395 #endif
<> 144:ef7eb2e8f9f7 396
<> 144:ef7eb2e8f9f7 397
<> 144:ef7eb2e8f9f7 398 /*----------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 399 DEFINES
<> 144:ef7eb2e8f9f7 400 *----------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 401
<> 144:ef7eb2e8f9f7 402 /*----------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 403 Define clocks
<> 144:ef7eb2e8f9f7 404 *----------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 405 #define XTAL (12000000UL) /* Oscillator frequency */
<> 144:ef7eb2e8f9f7 406 #define OSC_CLK ( XTAL) /* Main oscillator frequency */
<> 144:ef7eb2e8f9f7 407 #define RTC_CLK ( 32000UL) /* RTC oscillator frequency */
<> 144:ef7eb2e8f9f7 408 #define IRC_OSC ( 4000000UL) /* Internal RC oscillator frequency */
<> 144:ef7eb2e8f9f7 409
<> 144:ef7eb2e8f9f7 410
<> 144:ef7eb2e8f9f7 411 /* F_cco0 = (2 * M * F_in) / N */
<> 144:ef7eb2e8f9f7 412 #define __M (((PLL0CFG_Val ) & 0x7FFF) + 1)
<> 144:ef7eb2e8f9f7 413 #define __N (((PLL0CFG_Val >> 16) & 0x00FF) + 1)
<> 144:ef7eb2e8f9f7 414 #define __FCCO(__F_IN) ((2ULL * __M * __F_IN) / __N)
<> 144:ef7eb2e8f9f7 415 #define __CCLK_DIV (((CCLKCFG_Val ) & 0x00FF) + 1)
<> 144:ef7eb2e8f9f7 416
<> 144:ef7eb2e8f9f7 417 /* Determine core clock frequency according to settings */
<> 144:ef7eb2e8f9f7 418 #if (PLL0_SETUP)
<> 144:ef7eb2e8f9f7 419 #if ((CLKSRCSEL_Val & 0x03) == 1)
<> 144:ef7eb2e8f9f7 420 #define __CORE_CLK (__FCCO(OSC_CLK) / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 421 #elif ((CLKSRCSEL_Val & 0x03) == 2)
<> 144:ef7eb2e8f9f7 422 #define __CORE_CLK (__FCCO(RTC_CLK) / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 423 #else
<> 144:ef7eb2e8f9f7 424 #define __CORE_CLK (__FCCO(IRC_OSC) / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 425 #endif
<> 144:ef7eb2e8f9f7 426 #else
<> 144:ef7eb2e8f9f7 427 #if ((CLKSRCSEL_Val & 0x03) == 1)
<> 144:ef7eb2e8f9f7 428 #define __CORE_CLK (OSC_CLK / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 429 #elif ((CLKSRCSEL_Val & 0x03) == 2)
<> 144:ef7eb2e8f9f7 430 #define __CORE_CLK (RTC_CLK / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 431 #else
<> 144:ef7eb2e8f9f7 432 #define __CORE_CLK (IRC_OSC / __CCLK_DIV)
<> 144:ef7eb2e8f9f7 433 #endif
<> 144:ef7eb2e8f9f7 434 #endif
<> 144:ef7eb2e8f9f7 435
<> 144:ef7eb2e8f9f7 436 /**
<> 144:ef7eb2e8f9f7 437 * @}
<> 144:ef7eb2e8f9f7 438 */
<> 144:ef7eb2e8f9f7 439
<> 144:ef7eb2e8f9f7 440
<> 144:ef7eb2e8f9f7 441 /** @addtogroup LPC17xx_System_Public_Variables LPC17xx System Public Variables
<> 144:ef7eb2e8f9f7 442 @{
<> 144:ef7eb2e8f9f7 443 */
<> 144:ef7eb2e8f9f7 444 /*----------------------------------------------------------------------------
<> 144:ef7eb2e8f9f7 445 Clock Variable definitions
<> 144:ef7eb2e8f9f7 446 *----------------------------------------------------------------------------*/
<> 144:ef7eb2e8f9f7 447 uint32_t SystemCoreClock = __CORE_CLK;/*!< System Clock Frequency (Core Clock)*/
<> 144:ef7eb2e8f9f7 448
<> 144:ef7eb2e8f9f7 449 /**
<> 144:ef7eb2e8f9f7 450 * @}
<> 144:ef7eb2e8f9f7 451 */
<> 144:ef7eb2e8f9f7 452
<> 144:ef7eb2e8f9f7 453
<> 144:ef7eb2e8f9f7 454 /** @addtogroup LPC17xx_System_Public_Functions LPC17xx System Public Functions
<> 144:ef7eb2e8f9f7 455 @{
<> 144:ef7eb2e8f9f7 456 */
<> 144:ef7eb2e8f9f7 457
<> 144:ef7eb2e8f9f7 458 /**
<> 144:ef7eb2e8f9f7 459 * Update SystemCoreClock variable
<> 144:ef7eb2e8f9f7 460 *
<> 144:ef7eb2e8f9f7 461 * @param none
<> 144:ef7eb2e8f9f7 462 * @return none
<> 144:ef7eb2e8f9f7 463 *
<> 144:ef7eb2e8f9f7 464 * @brief Updates the SystemCoreClock with current core Clock
<> 144:ef7eb2e8f9f7 465 * retrieved from cpu registers.
<> 144:ef7eb2e8f9f7 466 */void SystemCoreClockUpdate (void) /* Get Core Clock Frequency */
<> 144:ef7eb2e8f9f7 467 {
<> 144:ef7eb2e8f9f7 468 /* Determine clock frequency according to clock register values */
<> 144:ef7eb2e8f9f7 469 if (((LPC_SC->PLL0STAT >> 24) & 3) == 3) { /* If PLL0 enabled and connected */
<> 144:ef7eb2e8f9f7 470 switch (LPC_SC->CLKSRCSEL & 0x03) {
<> 144:ef7eb2e8f9f7 471 case 0: /* Int. RC oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 472 case 3: /* Reserved, default to Int. RC */
<> 144:ef7eb2e8f9f7 473 SystemCoreClock = (IRC_OSC *
<> 144:ef7eb2e8f9f7 474 ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) /
<> 144:ef7eb2e8f9f7 475 (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) /
<> 144:ef7eb2e8f9f7 476 ((LPC_SC->CCLKCFG & 0xFF)+ 1));
<> 144:ef7eb2e8f9f7 477 break;
<> 144:ef7eb2e8f9f7 478 case 1: /* Main oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 479 SystemCoreClock = (OSC_CLK *
<> 144:ef7eb2e8f9f7 480 ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) /
<> 144:ef7eb2e8f9f7 481 (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) /
<> 144:ef7eb2e8f9f7 482 ((LPC_SC->CCLKCFG & 0xFF)+ 1));
<> 144:ef7eb2e8f9f7 483 break;
<> 144:ef7eb2e8f9f7 484 case 2: /* RTC oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 485 SystemCoreClock = (RTC_CLK *
<> 144:ef7eb2e8f9f7 486 ((2ULL * ((LPC_SC->PLL0STAT & 0x7FFF) + 1))) /
<> 144:ef7eb2e8f9f7 487 (((LPC_SC->PLL0STAT >> 16) & 0xFF) + 1) /
<> 144:ef7eb2e8f9f7 488 ((LPC_SC->CCLKCFG & 0xFF)+ 1));
<> 144:ef7eb2e8f9f7 489 break;
<> 144:ef7eb2e8f9f7 490 }
<> 144:ef7eb2e8f9f7 491 } else {
<> 144:ef7eb2e8f9f7 492 switch (LPC_SC->CLKSRCSEL & 0x03) {
<> 144:ef7eb2e8f9f7 493 case 0: /* Int. RC oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 494 case 3: /* Reserved, default to Int. RC */
<> 144:ef7eb2e8f9f7 495 SystemCoreClock = IRC_OSC / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
<> 144:ef7eb2e8f9f7 496 break;
<> 144:ef7eb2e8f9f7 497 case 1: /* Main oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 498 SystemCoreClock = OSC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
<> 144:ef7eb2e8f9f7 499 break;
<> 144:ef7eb2e8f9f7 500 case 2: /* RTC oscillator => PLL0 */
<> 144:ef7eb2e8f9f7 501 SystemCoreClock = RTC_CLK / ((LPC_SC->CCLKCFG & 0xFF)+ 1);
<> 144:ef7eb2e8f9f7 502 break;
<> 144:ef7eb2e8f9f7 503 }
<> 144:ef7eb2e8f9f7 504 }
<> 144:ef7eb2e8f9f7 505
<> 144:ef7eb2e8f9f7 506 }
<> 144:ef7eb2e8f9f7 507
<> 144:ef7eb2e8f9f7 508 /**
<> 144:ef7eb2e8f9f7 509 * Initialize the system
<> 144:ef7eb2e8f9f7 510 *
<> 144:ef7eb2e8f9f7 511 * @param none
<> 144:ef7eb2e8f9f7 512 * @return none
<> 144:ef7eb2e8f9f7 513 *
<> 144:ef7eb2e8f9f7 514 * @brief Setup the microcontroller system.
<> 144:ef7eb2e8f9f7 515 * Initialize the System.
<> 144:ef7eb2e8f9f7 516 */
<> 144:ef7eb2e8f9f7 517 void SystemInit (void)
<> 144:ef7eb2e8f9f7 518 {
<> 144:ef7eb2e8f9f7 519 #if (CLOCK_SETUP) /* Clock Setup */
<> 144:ef7eb2e8f9f7 520 LPC_SC->SCS = SCS_Val;
<> 144:ef7eb2e8f9f7 521 if (LPC_SC->SCS & (1 << 5)) { /* If Main Oscillator is enabled */
<> 144:ef7eb2e8f9f7 522 while ((LPC_SC->SCS & (1<<6)) == 0);/* Wait for Oscillator to be ready */
<> 144:ef7eb2e8f9f7 523 }
<> 144:ef7eb2e8f9f7 524
<> 144:ef7eb2e8f9f7 525 LPC_SC->CCLKCFG = CCLKCFG_Val; /* Setup Clock Divider */
<> 144:ef7eb2e8f9f7 526 /* Periphral clock must be selected before PLL0 enabling and connecting
<> 144:ef7eb2e8f9f7 527 * - according errata.lpc1768-16.March.2010 -
<> 144:ef7eb2e8f9f7 528 */
<> 144:ef7eb2e8f9f7 529 LPC_SC->PCLKSEL0 = PCLKSEL0_Val; /* Peripheral Clock Selection */
<> 144:ef7eb2e8f9f7 530 LPC_SC->PCLKSEL1 = PCLKSEL1_Val;
<> 144:ef7eb2e8f9f7 531
<> 144:ef7eb2e8f9f7 532 #if (PLL0_SETUP)
<> 144:ef7eb2e8f9f7 533 LPC_SC->CLKSRCSEL = CLKSRCSEL_Val; /* Select Clock Source for PLL0 */
<> 144:ef7eb2e8f9f7 534
<> 144:ef7eb2e8f9f7 535 LPC_SC->PLL0CFG = PLL0CFG_Val; /* configure PLL0 */
<> 144:ef7eb2e8f9f7 536 LPC_SC->PLL0FEED = 0xAA;
<> 144:ef7eb2e8f9f7 537 LPC_SC->PLL0FEED = 0x55;
<> 144:ef7eb2e8f9f7 538
<> 144:ef7eb2e8f9f7 539 LPC_SC->PLL0CON = 0x01; /* PLL0 Enable */
<> 144:ef7eb2e8f9f7 540 LPC_SC->PLL0FEED = 0xAA;
<> 144:ef7eb2e8f9f7 541 LPC_SC->PLL0FEED = 0x55;
<> 144:ef7eb2e8f9f7 542 while (!(LPC_SC->PLL0STAT & (1<<26)));/* Wait for PLOCK0 */
<> 144:ef7eb2e8f9f7 543
<> 144:ef7eb2e8f9f7 544 LPC_SC->PLL0CON = 0x03; /* PLL0 Enable & Connect */
<> 144:ef7eb2e8f9f7 545 LPC_SC->PLL0FEED = 0xAA;
<> 144:ef7eb2e8f9f7 546 LPC_SC->PLL0FEED = 0x55;
<> 144:ef7eb2e8f9f7 547 while (!(LPC_SC->PLL0STAT & ((1<<25) | (1<<24))));/* Wait for PLLC0_STAT & PLLE0_STAT */
<> 144:ef7eb2e8f9f7 548 #endif
<> 144:ef7eb2e8f9f7 549
<> 144:ef7eb2e8f9f7 550 #if (PLL1_SETUP)
<> 144:ef7eb2e8f9f7 551 LPC_SC->PLL1CFG = PLL1CFG_Val;
<> 144:ef7eb2e8f9f7 552 LPC_SC->PLL1FEED = 0xAA;
<> 144:ef7eb2e8f9f7 553 LPC_SC->PLL1FEED = 0x55;
<> 144:ef7eb2e8f9f7 554
<> 144:ef7eb2e8f9f7 555 LPC_SC->PLL1CON = 0x01; /* PLL1 Enable */
<> 144:ef7eb2e8f9f7 556 LPC_SC->PLL1FEED = 0xAA;
<> 144:ef7eb2e8f9f7 557 LPC_SC->PLL1FEED = 0x55;
<> 144:ef7eb2e8f9f7 558 while (!(LPC_SC->PLL1STAT & (1<<10)));/* Wait for PLOCK1 */
<> 144:ef7eb2e8f9f7 559
<> 144:ef7eb2e8f9f7 560 LPC_SC->PLL1CON = 0x03; /* PLL1 Enable & Connect */
<> 144:ef7eb2e8f9f7 561 LPC_SC->PLL1FEED = 0xAA;
<> 144:ef7eb2e8f9f7 562 LPC_SC->PLL1FEED = 0x55;
<> 144:ef7eb2e8f9f7 563 while (!(LPC_SC->PLL1STAT & ((1<< 9) | (1<< 8))));/* Wait for PLLC1_STAT & PLLE1_STAT */
<> 144:ef7eb2e8f9f7 564 #else
<> 144:ef7eb2e8f9f7 565 LPC_SC->USBCLKCFG = USBCLKCFG_Val; /* Setup USB Clock Divider */
<> 144:ef7eb2e8f9f7 566 #endif
<> 144:ef7eb2e8f9f7 567
<> 144:ef7eb2e8f9f7 568 LPC_SC->PCONP = PCONP_Val; /* Power Control for Peripherals */
<> 144:ef7eb2e8f9f7 569
<> 144:ef7eb2e8f9f7 570 LPC_SC->CLKOUTCFG = CLKOUTCFG_Val; /* Clock Output Configuration */
<> 144:ef7eb2e8f9f7 571 #endif
<> 144:ef7eb2e8f9f7 572
<> 144:ef7eb2e8f9f7 573 #if (FLASH_SETUP == 1) /* Flash Accelerator Setup */
<> 144:ef7eb2e8f9f7 574 LPC_SC->FLASHCFG = (LPC_SC->FLASHCFG & ~0x0000F000) | FLASHCFG_Val;
<> 144:ef7eb2e8f9f7 575 #endif
<> 144:ef7eb2e8f9f7 576 }
<> 144:ef7eb2e8f9f7 577
<> 144:ef7eb2e8f9f7 578 /**
<> 144:ef7eb2e8f9f7 579 * @}
<> 144:ef7eb2e8f9f7 580 */
<> 144:ef7eb2e8f9f7 581
<> 144:ef7eb2e8f9f7 582 /**
<> 144:ef7eb2e8f9f7 583 * @}
<> 144:ef7eb2e8f9f7 584 */