The common folder libraries from keil LPC11Uxx code bundle
clkconfig.c@0:05d110ee258e, 2012-05-27 (annotated)
- Committer:
- alexan_e
- Date:
- Sun May 27 23:59:30 2012 +0000
- Revision:
- 0:05d110ee258e
Who changed what in which revision?
User | Revision | Line number | New 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 |