//****************************************************************************************** // Project : LPC1343 Sample Program // Program Name : // Programer : // Create date : Version 1.0 H24.10.15 // History : // Laungage : // ****************************************************************************************** // (1)Description // CLOCKOUT : PIO(0_1) // // ****************************************************************************************** #include "LPC13xx.h" void IntCLKOUT(uint32_t, unsigned char ); #define PI_CLKOUT_IRC 0 #define PI_CLKOUT_SYSOSC 1 #define PI_CLKOUT_WTOSC 2 #define PI_CLKOUT_MAINCLK 3 int main( void ) { // ******************** // 1.Initialized Segmant // ******************** // (1)Define I/O PORT (Configuration) // PIO0_1 Reset PIN LPC_IOCON->PIO0_1 = 0b01; //PIO0_1/CLKOUT/CT32B0_MAT2/USB_FTOGGLE (R/W) LPC_IOCON->PIO0_2 = 0b00; //PIO0_2/SSEL0/CT16B0_CAP0 (R/W) LPC_IOCON->PIO0_3 = 0b00; //PIO0_3/USB_VBUS (R/W) LPC_IOCON->PIO0_4 = 0b00; //PIO0_4/SCL (R/W) LPC_IOCON->PIO0_5 = 0b00; //PIO0_5/SDA (R/W) LPC_IOCON->PIO0_6 = 0b00; //PIO0_6/USB_CONNECT/SCK0 (R/W) LPC_IOCON->PIO0_7 = 0b00; //PIO0_7/CTS (R/W) // (2)Clock OUT // IntCLKOUT((uint32_t)PI_CLKOUT_IRC, (unsigned char)1); //IRC oscillator (12MHz) IntCLKOUT((uint32_t)PI_CLKOUT_SYSOSC, (unsigned char)1); //System oscillator(12.000MHz) // IntCLKOUT((uint32_t)PI_CLKOUT_WTOSC, (unsigned char)1); //Watchdog oscillator(No output) // IntCLKOUT((uint32_t)PI_CLKOUT_MAINCLK, (unsigned char)1); //Main clock(28MHz) // ******************** // 2.Main // ******************** while(1); } //****************************************************************************************** // Function Name : IntCLKOUT // Title : // Input : // Output : //****************************************************************************************** void IntCLKOUT(uint32_t out_mode, unsigned char c_dev) { // **************************************** // CLKOUTCLKSEL (CLKOUT clock source select register) // **************************************** // CLKOUTCLKSEL[1:0] SEL: CLKOUT clock source Reset value : 0x00 // 0x0 IRC oscillator // 0x1 System oscillator // 0x2 Watchdog oscillator // 0x3 Main clock // CLKOUTCLKSEL[31:2] Reserved LPC_SYSCON->CLKOUTCLKSEL = out_mode; // **************************************** // CLKOUTUEN (CLKOUT clock source update enable register) // **************************************** // CLKOUTUEN[0] ENA: Enable CLKOUT clock source update // 0 No change // 1 Update clock source // CLKOUTUEN[31:1] Reserved LPC_SYSCON->CLKOUTUEN = 0x01; // Update clock LPC_SYSCON->CLKOUTUEN = 0x00; // Toggle update register once LPC_SYSCON->CLKOUTUEN = 0x01; while ( !(LPC_SYSCON->CLKOUTUEN & 0x01) ); // Wait until updated // **************************************** // CLKOUTCLKDIV (CLKOUT clock divider register) // **************************************** // CLKOUTCLKDIV[7:0]: DIV Clock output divider values // 0: Disable CLKOUT. // 1: Divide by 1. // * * * * * // 255: Divide by 255. // CLKOUTCLKDIV[31:8]: Reserved LPC_SYSCON->CLKOUTDIV = c_dev; // Divided by 1 }