Test application based on the AVR examples provided by ThaiEasyElec for their ELT240320ATP breakout board -- library works rather slow on the mbed platform.

Dependencies:   mbed

Committer:
robodude666
Date:
Wed Mar 10 21:17:41 2010 +0000
Revision:
0:4395705c8647

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
robodude666 0:4395705c8647 1 #include "ClockControl.h"
robodude666 0:4395705c8647 2
robodude666 0:4395705c8647 3 void setPLL0Frequency(unsigned char clkSrc, unsigned short M, unsigned char N)
robodude666 0:4395705c8647 4 {
robodude666 0:4395705c8647 5 LPC_SC->CLKSRCSEL = clkSrc;
robodude666 0:4395705c8647 6 LPC_SC->PLL0CFG = (((unsigned int)N-1) << 16) | M-1;
robodude666 0:4395705c8647 7 LPC_SC->PLL0CON = 0x01;
robodude666 0:4395705c8647 8 LPC_SC->PLL0FEED = 0xAA;
robodude666 0:4395705c8647 9 LPC_SC->PLL0FEED = 0x55;
robodude666 0:4395705c8647 10 while (!(LPC_SC->PLL0STAT & (1<<26)));
robodude666 0:4395705c8647 11
robodude666 0:4395705c8647 12 LPC_SC->PLL0CON = 0x03;
robodude666 0:4395705c8647 13 LPC_SC->PLL0FEED = 0xAA;
robodude666 0:4395705c8647 14 LPC_SC->PLL0FEED = 0x55;
robodude666 0:4395705c8647 15 }
robodude666 0:4395705c8647 16
robodude666 0:4395705c8647 17 void setPLL1Frequency(unsigned char clkSrc, unsigned short M, unsigned char N)
robodude666 0:4395705c8647 18 {
robodude666 0:4395705c8647 19 LPC_SC->CLKSRCSEL = clkSrc;
robodude666 0:4395705c8647 20 LPC_SC->PLL1CFG = (((unsigned int)N-1) << 16) | M-1;
robodude666 0:4395705c8647 21 LPC_SC->PLL1CON = 0x01;
robodude666 0:4395705c8647 22 LPC_SC->PLL1FEED = 0xAA;
robodude666 0:4395705c8647 23 LPC_SC->PLL1FEED = 0x55;
robodude666 0:4395705c8647 24 while (!(LPC_SC->PLL1STAT & (1<<26)));
robodude666 0:4395705c8647 25
robodude666 0:4395705c8647 26 LPC_SC->PLL1CON = 0x03;
robodude666 0:4395705c8647 27 LPC_SC->PLL1FEED = 0xAA;
robodude666 0:4395705c8647 28 LPC_SC->PLL1FEED = 0x55;
robodude666 0:4395705c8647 29 }
robodude666 0:4395705c8647 30
robodude666 0:4395705c8647 31 unsigned int setSystemFrequency(unsigned char clkDivider, unsigned char clkSrc, unsigned short M, unsigned char N)
robodude666 0:4395705c8647 32 {
robodude666 0:4395705c8647 33 setPLL0Frequency(clkSrc, M, N);
robodude666 0:4395705c8647 34 LPC_SC->CCLKCFG = clkDivider - 1;
robodude666 0:4395705c8647 35 SystemCoreClockUpdate();
robodude666 0:4395705c8647 36 return SystemCoreClock;
robodude666 0:4395705c8647 37 }