Updated functions to deal with USB clocking. (PPL1) See http://www.nxp.com/documents/user_manual/UM10360.pdf Section 4.6 & 4.7.3
Fork of ClockControl by
Diff: main.cpp
- Revision:
- 1:8b04bd33c7cd
- Parent:
- 0:b5d3bd64d2dc
--- a/main.cpp Sun Jan 24 15:46:26 2010 +0000 +++ b/main.cpp Sun Sep 11 22:36:20 2016 +0000 @@ -11,6 +11,7 @@ unsigned short newM = 12; unsigned short newN = 1; + unsigned char newUSBdiv = 6; printf("Value of M? (default = 12):\r\n"); scanf("%d", &newM); @@ -18,7 +19,10 @@ printf("Value of N? (default = 1):\r\n"); scanf("%d", &newN); - setSystemFrequency(0x3, 0x1, newM, newN); + printf("Value of USB divider? (default = 6):\r\n"); + scanf("%d", &newUSBdiv); + + setSystemFrequency(newUSBdiv, 0x3, 0x1, newM, newN); Serial pc(USBTX, USBRX); // tx, rx @@ -32,12 +36,14 @@ int M = (LPC_SC->PLL0CFG & 0xFFFF) + 1; int N = (LPC_SC->PLL0CFG >> 16) + 1; int CCLKDIV = LPC_SC->CCLKCFG + 1; + int USBCLKDIV = LPC_SC->USBCLKCFG + 1; pc.printf("Clock Variables:\r\n"); pc.printf(" - Fin = %d\r\n", Fin); pc.printf(" - M = %d\r\n", M); pc.printf(" - N = %d\r\n", N); pc.printf(" - CCLKDIV = %d\r\n", CCLKDIV); + pc.printf(" - USBCLKDIV = %d\r\n", USBCLKDIV); int Fcco = (2 * M * 12000000) / N; int CCLK = Fcco / CCLKDIV;