124 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/**
 | 
						|
  TMR2 Generated Driver File
 | 
						|
 | 
						|
  @Company
 | 
						|
    Microchip Technology Inc.
 | 
						|
 | 
						|
  @File Name
 | 
						|
    tmr2.c
 | 
						|
 | 
						|
  @Summary
 | 
						|
    This is the generated driver implementation file for the TMR2 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs
 | 
						|
 | 
						|
  @Description
 | 
						|
    This source file provides APIs for TMR2.
 | 
						|
    Generation Information :
 | 
						|
        Product Revision  :  PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
 | 
						|
        Device            :  PIC18F97J60
 | 
						|
        Driver Version    :  2.01
 | 
						|
    The generated drivers are tested against the following:
 | 
						|
        Compiler          :  XC8 2.36 and above
 | 
						|
        MPLAB 	          :  MPLAB X 6.00
 | 
						|
*/
 | 
						|
 | 
						|
/*
 | 
						|
    (c) 2018 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: Included Files
 | 
						|
*/
 | 
						|
 | 
						|
#include <xc.h>
 | 
						|
#include "tmr2.h"
 | 
						|
 | 
						|
/**
 | 
						|
  Section: Global Variables Definitions
 | 
						|
*/
 | 
						|
 | 
						|
/**
 | 
						|
  Section: TMR2 APIs
 | 
						|
*/
 | 
						|
 | 
						|
void TMR2_Initialize(void)
 | 
						|
{
 | 
						|
    // Set TMR2 to the options selected in the User Interface
 | 
						|
 | 
						|
    // PR2 255; 
 | 
						|
    PR2 = 0xFF;
 | 
						|
 | 
						|
    // TMR2 0; 
 | 
						|
    TMR2 = 0x00;
 | 
						|
 | 
						|
    // Clearing IF flag.
 | 
						|
    PIR1bits.TMR2IF = 0;
 | 
						|
 | 
						|
    // T2CKPS 1:1; TOUTPS 1:1; TMR2ON on; 
 | 
						|
    T2CON = 0x04;
 | 
						|
}
 | 
						|
 | 
						|
void TMR2_StartTimer(void)
 | 
						|
{
 | 
						|
    // Start the Timer by writing to TMRxON bit
 | 
						|
    T2CONbits.TMR2ON = 1;
 | 
						|
}
 | 
						|
 | 
						|
void TMR2_StopTimer(void)
 | 
						|
{
 | 
						|
    // Stop the Timer by writing to TMRxON bit
 | 
						|
    T2CONbits.TMR2ON = 0;
 | 
						|
}
 | 
						|
 | 
						|
uint8_t TMR2_ReadTimer(void)
 | 
						|
{
 | 
						|
    uint8_t readVal;
 | 
						|
 | 
						|
    readVal = TMR2;
 | 
						|
 | 
						|
    return readVal;
 | 
						|
}
 | 
						|
 | 
						|
void TMR2_WriteTimer(uint8_t timerVal)
 | 
						|
{
 | 
						|
    // Write to the Timer2 register
 | 
						|
    TMR2 = timerVal;
 | 
						|
}
 | 
						|
 | 
						|
void TMR2_LoadPeriodRegister(uint8_t periodVal)
 | 
						|
{
 | 
						|
   PR2 = periodVal;
 | 
						|
}
 | 
						|
 | 
						|
bool TMR2_HasOverflowOccured(void)
 | 
						|
{
 | 
						|
    // check if  overflow has occurred by checking the TMRIF bit
 | 
						|
    bool status = PIR1bits.TMR2IF;
 | 
						|
    if(status)
 | 
						|
    {
 | 
						|
        // Clearing IF flag.
 | 
						|
        PIR1bits.TMR2IF = 0;
 | 
						|
    }
 | 
						|
    return status;
 | 
						|
}
 | 
						|
/**
 | 
						|
  End of File
 | 
						|
*/ |