64 #define CLOCK_SOURCE   8000000ul 
   66 #define DEVCFG2        0xBFC02FF4  
   68 #define PLLIDIV_MASK   0x7 
   70 static const uint16_t FPPLIDIV[8] = { 1, 2, 3, 4, 5, 6, 10, 12 };
 
   71 static const uint16_t PLLODIV[8] = { 1, 2, 4, 8, 16, 32, 64, 256 };
 
   72 static const uint16_t PLLMULT[8] = { 15, 16, 17, 18, 19, 20, 21, 24 };
 
   73 static const uint16_t PBDIV[4] = { 1, 2, 4, 8 };
 
   85          PLLMULT[(uint32_t) OSCCONbits.PLLMULT] /
 
   86          (FPPLIDIV[(*((uint32_t *) DEVCFG2)) & PLLIDIV_MASK] *
 
   87          PLLODIV[(uint32_t) OSCCONbits.PLLODIV]);
 
  102 pic32_clock_calculate_brg(uint32_t mul, uint32_t desired)
 
  107   uint32_t obtained[3];
 
  112   brg[0] = fp / (mul * desired);     
 
  113   brg[1] = fp / (mul * desired) - 1; 
 
  114   brg[2] = fp / (mul * desired) - 2; 
 
  116   obtained[0] = fp / (mul * (brg[0] + 1));
 
  117   obtained[1] = fp / (mul * (brg[1] + 1));
 
  118   obtained[2] = fp / (mul * (brg[2] + 1));
 
  120   err[0] = obtained[0] - desired;
 
  121   err[1] = obtained[1] - desired;
 
  122   err[2] = obtained[2] - desired;
 
  124   err[0] = err[0] < 0 ? -err[0] : err[0];
 
  125   err[1] = err[1] < 0 ? -err[1] : err[1];
 
  126   err[2] = err[2] < 0 ? -err[2] : err[2];
 
  129   min = err[1] < err[min] ? 1 : min;
 
  130   min = err[2] < err[min] ? 2 : min;
 
uint32_t pic32_clock_get_peripheral_clock(void)
Calculate the peripheral clock. 
uint32_t pic32_clock_get_system_clock(void)
Calculate the system clock. 
CLOCK interface for PIC32MX (pic32mx795f512l)