text: /*******************************************************************************
    SYS CLK Static Functions for Clock System Service
  
    Company:
      Microchip Technology Inc.
  
    File Name:
      plib_clk.c
  
    Summary:
      SYS CLK static function implementations for the Clock System Service.
  
    Description:
      The Clock System Service provides a simple interface to manage the
      oscillators on Microchip microcontrollers. This file defines the static
      implementation for the Clock System Service.
  
    Remarks:
      Static functions incorporate all system clock configuration settings as
      determined by the user via the Microchip Harmony Configurator GUI.
      It provides static version of the routines, eliminating the need for an
      object ID or object handle.
  
      Static single-open interfaces also eliminate the need for the open handle.
  
  *******************************************************************************/
  
  /*******************************************************************************
  * Copyright (C) 2019 Microchip Technology Inc. and its subsidiaries.
  *
  * Subject to your compliance with these terms, you may use Microchip software
  * and any derivatives exclusively with Microchip products. It is your
  * responsibility to comply with third party license terms applicable to your
  * use of third party software (including open source software) that may
  * accompany Microchip software.
  *
  * THIS SOFTWARE IS SUPPLIED BY MICROCHIP "AS IS". NO WARRANTIES, WHETHER
  * EXPRESS, IMPLIED OR STATUTORY, APPLY TO THIS SOFTWARE, INCLUDING ANY IMPLIED
  * WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY, AND FITNESS FOR A
  * PARTICULAR PURPOSE.
  *
  * IN NO EVENT WILL MICROCHIP BE LIABLE FOR ANY INDIRECT, SPECIAL, PUNITIVE,
  * INCIDENTAL OR CONSEQUENTIAL LOSS, DAMAGE, COST OR EXPENSE OF ANY KIND
  * WHATSOEVER RELATED TO THE SOFTWARE, HOWEVER CAUSED, EVEN IF MICROCHIP HAS
  * BEEN ADVISED OF THE POSSIBILITY OR THE DAMAGES ARE FORESEEABLE. TO THE
  * FULLEST EXTENT ALLOWED BY LAW, MICROCHIP'S TOTAL LIABILITY ON ALL CLAIMS IN
  * ANY WAY RELATED TO THIS SOFTWARE WILL NOT EXCEED THE AMOUNT OF FEES, IF ANY,
  * THAT YOU HAVE PAID DIRECTLY TO MICROCHIP FOR THIS SOFTWARE.
  *******************************************************************************/
  
  // *****************************************************************************
  // *****************************************************************************
  // Section: Include Files
  // *****************************************************************************
  // *****************************************************************************
  
  #include "device.h"
  #include "plib_clk.h"
  
  // *****************************************************************************
  // *****************************************************************************
  // Section: File Scope Functions
  // *****************************************************************************
  // *****************************************************************************
  
  // *****************************************************************************
  /* Function:
      void CLK_Initialize( void )
  
    Summary:
      Initializes hardware and internal data structure of the System Clock.
  
    Description:
      This function initializes the hardware and internal data structure of System
      Clock Service.
  
    Remarks:
      This is configuration values for the static version of the Clock System
      Service module is determined by the user via the MHC GUI.
  
      The objective is to eliminate the user's need to be knowledgeable in the
      function of the 'configuration bits' to configure the system oscillators.
  */
  
  void CLK_Initialize( void )
  {
      /* unlock system for clock configuration */
      SYSKEY = 0x00000000;
      SYSKEY = 0xAA996655;
      SYSKEY = 0x556699AA;
  
  
    
  
      /* Peripheral Module Disable Configuration */
      PMD1 = 0x1001;
      PMD2 = 0x3;
      PMD3 = 0x1ff01ff;
      PMD4 = 0xfffffffe;
      PMD5 = 0xfefffffd;
      PMD6 = 0xeffff0ff;
      PMD7 = 0xffffffef;
  
      /* Lock system since done with clock configuration */
      SYSKEY = 0x33333333;
  }
  