Updated functions to deal with USB clocking. (PPL1) See http://www.nxp.com/documents/user_manual/UM10360.pdf Section 4.6 & 4.7.3

Dependencies:   mbed

Fork of ClockControl by Michael Wei

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;