need to run my lpc1768 at 100mhz

13 Mar 2014

hey guys i am beginner with lpc1768 and trying to run it at 100mhz with a 12mhz onboard crystal this is the code i have written is it right?am i missing something?

  1. include "LPC17xx.h"

volatile uint32_t temp;

void _delay(uint32_t del);

void pllfeed() {

LPC_SC->PLL0FEED=0x000000AA; LPC_SC->PLL0FEED=0x00000055;

}

void setpll() { uint16_t n,m,d;

the external crystal oscillator is 12 MHz

main oscillator frequency 300 MHz: M = (300 x N) / (2 x 12) n=2;

m=25;

processor clock 100 MHz = 300 MHz / D

d=3; disconnect

LPC_SC->PLL0CON=0x00000001; pllfeed();

disable

LPC_SC->PLL0CON=0x00000000; pllfeed();

select the on board crystal

LPC_SC->CLKSRCSEL =1;

set new PLL values

LPC_SC->PLL0CFG=((n-1)<<16)|(m-1); pllfeed();

enable

LPC_SC->PLL0CON=0x00000001; pllfeed();

set cpu clock divider

LPC_SC->CCLKCFG=d-1;

wait for lock

while ((LPC_SC->PLL0STAT&0x04000000)==0);

connect

LPC_SC->PLL0CON=0x00000003; pllfeed();

SystemCoreClockUpdate();

}

int main (void) {

SystemInit();

setpll();

LPC_SC->PCONP |= ( 1 << 15 ); power up GPIO

LPC_GPIO1->FIODIR |= 1 << 29; puts P1.29 into output mode.

while(1) {

LPC_GPIO1->FIOPIN |= 1 << 29; make P1.29 high

_delay( 1 << 30 );

LPC_GPIO1->FIOPIN &= ( 1 << 29 ); make P1.29 low

_delay( 1 << 30 );

}

}

void _delay(uint32_t del) {

uint32_t i;

for(i=0;i<del;i++)

temp = i;

}