The common folder libraries from keil LPC11Uxx code bundle

Committer:
alexan_e
Date:
Sun May 27 23:59:30 2012 +0000
Revision:
0:05d110ee258e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
alexan_e 0:05d110ee258e 1 /****************************************************************************
alexan_e 0:05d110ee258e 2 * $Id:: clkconfig.c 9190 2012-02-16 20:59:45Z nxp41306 $
alexan_e 0:05d110ee258e 3 * Project: NXP LPC11Uxx Clock Configuration example
alexan_e 0:05d110ee258e 4 *
alexan_e 0:05d110ee258e 5 * Description:
alexan_e 0:05d110ee258e 6 * This file contains clock configuration code example which include
alexan_e 0:05d110ee258e 7 * watchdog setup and debug clock out setup.
alexan_e 0:05d110ee258e 8 *
alexan_e 0:05d110ee258e 9 ****************************************************************************
alexan_e 0:05d110ee258e 10 * Software that is described herein is for illustrative purposes only
alexan_e 0:05d110ee258e 11 * which provides customers with programming information regarding the
alexan_e 0:05d110ee258e 12 * products. This software is supplied "AS IS" without any warranties.
alexan_e 0:05d110ee258e 13 * NXP Semiconductors assumes no responsibility or liability for the
alexan_e 0:05d110ee258e 14 * use of the software, conveys no license or title under any patent,
alexan_e 0:05d110ee258e 15 * copyright, or mask work right to the product. NXP Semiconductors
alexan_e 0:05d110ee258e 16 * reserves the right to make changes in the software without
alexan_e 0:05d110ee258e 17 * notification. NXP Semiconductors also make no representation or
alexan_e 0:05d110ee258e 18 * warranty that such application will be suitable for the specified
alexan_e 0:05d110ee258e 19 * use without further testing or modification.
alexan_e 0:05d110ee258e 20
alexan_e 0:05d110ee258e 21 * Permission to use, copy, modify, and distribute this software and its
alexan_e 0:05d110ee258e 22 * documentation is hereby granted, under NXP Semiconductors'
alexan_e 0:05d110ee258e 23 * relevant copyright in the software, without fee, provided that it
alexan_e 0:05d110ee258e 24 * is used in conjunction with NXP Semiconductors microcontrollers. This
alexan_e 0:05d110ee258e 25 * copyright, permission, and disclaimer notice must appear in all copies of
alexan_e 0:05d110ee258e 26 * this code.
alexan_e 0:05d110ee258e 27
alexan_e 0:05d110ee258e 28 ****************************************************************************/
alexan_e 0:05d110ee258e 29
alexan_e 0:05d110ee258e 30 #include "LPC11Uxx.h"
alexan_e 0:05d110ee258e 31 #include "clkconfig.h"
alexan_e 0:05d110ee258e 32
alexan_e 0:05d110ee258e 33
alexan_e 0:05d110ee258e 34 /*****************************************************************************
alexan_e 0:05d110ee258e 35 ** Function name: WDT_CLK_Setup
alexan_e 0:05d110ee258e 36 **
alexan_e 0:05d110ee258e 37 ** Descriptions: Configure WDT clock.
alexan_e 0:05d110ee258e 38 ** parameters: clock source: irc_osc(0), main_clk(1), wdt_osc(2).
alexan_e 0:05d110ee258e 39 **
alexan_e 0:05d110ee258e 40 ** Returned value: None
alexan_e 0:05d110ee258e 41 **
alexan_e 0:05d110ee258e 42 *****************************************************************************/
alexan_e 0:05d110ee258e 43 void WDT_CLK_Setup ( uint32_t clksrc )
alexan_e 0:05d110ee258e 44 {
alexan_e 0:05d110ee258e 45 /* Freq = 0.5Mhz, div_sel is 0x1F, divided by 64. WDT_OSC should be 7.8125khz */
alexan_e 0:05d110ee258e 46 LPC_SYSCON->WDTOSCCTRL = (0x1<<5)|0x1F;
alexan_e 0:05d110ee258e 47 LPC_SYSCON->PDRUNCFG &= ~(0x1<<6); /* Let WDT clock run */
alexan_e 0:05d110ee258e 48
alexan_e 0:05d110ee258e 49 /* Enables clock for WDT */
alexan_e 0:05d110ee258e 50 LPC_SYSCON->SYSAHBCLKCTRL |= (1<<15);
alexan_e 0:05d110ee258e 51 LPC_WWDT->CLKSEL = clksrc; /* Select clock source */
alexan_e 0:05d110ee258e 52 return;
alexan_e 0:05d110ee258e 53 }
alexan_e 0:05d110ee258e 54
alexan_e 0:05d110ee258e 55 /*****************************************************************************
alexan_e 0:05d110ee258e 56 ** Function name: CLKOUT_Setup
alexan_e 0:05d110ee258e 57 **
alexan_e 0:05d110ee258e 58 ** Descriptions: Configure CLKOUT for reference clock check.
alexan_e 0:05d110ee258e 59 ** parameters: clock source: irc_osc(0), sys_osc(1), wdt_osc(2),
alexan_e 0:05d110ee258e 60 ** main_clk(3).
alexan_e 0:05d110ee258e 61 **
alexan_e 0:05d110ee258e 62 ** Returned value: None
alexan_e 0:05d110ee258e 63 **
alexan_e 0:05d110ee258e 64 *****************************************************************************/
alexan_e 0:05d110ee258e 65 void CLKOUT_Setup ( uint32_t clksrc )
alexan_e 0:05d110ee258e 66 {
alexan_e 0:05d110ee258e 67 /* debug PLL after configuration. */
alexan_e 0:05d110ee258e 68 LPC_SYSCON->CLKOUTSEL = clksrc; /* Select Main clock */
alexan_e 0:05d110ee258e 69 LPC_SYSCON->CLKOUTUEN = 0x01; /* Update clock */
alexan_e 0:05d110ee258e 70 LPC_SYSCON->CLKOUTUEN = 0x00; /* Toggle update register once */
alexan_e 0:05d110ee258e 71 LPC_SYSCON->CLKOUTUEN = 0x01;
alexan_e 0:05d110ee258e 72 while ( !(LPC_SYSCON->CLKOUTUEN & 0x01) ); /* Wait until updated */
alexan_e 0:05d110ee258e 73 LPC_SYSCON->CLKOUTDIV = 1; /* Divided by 1 */
alexan_e 0:05d110ee258e 74 return;
alexan_e 0:05d110ee258e 75 }
alexan_e 0:05d110ee258e 76