/** TMR1 Generated Driver API Header File @Company Microchip Technology Inc. @File Name tmr1.h @Summary This is the generated header file for the TMR1 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs @Description This header file provides APIs for driver for TMR1. Generation Information : Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.65.2 Device : PIC16F1579 Driver Version : 2.11 The generated drivers are tested against the following: Compiler : XC8 1.45 MPLAB : MPLAB X 4.15 */ /* (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. */ #ifndef TMR1_H #define TMR1_H /** Section: Included Files */ #include #include #ifdef __cplusplus // Provide C++ Compatibility extern "C" { #endif /** Section: TMR1 APIs */ /** @Summary Initializes the TMR1 @Description This routine initializes the TMR1. This routine must be called before any other TMR1 routine is called. This routine should only be called once during system initialization. @Preconditions None @Param None @Returns None @Comment @Example main() { // Initialize TMR1 module TMR1_Initialize(); // Do something else... } */ void TMR1_Initialize(void); /** @Summary This function starts the TMR1. @Description This function starts the TMR1 operation. This function must be called after the initialization of TMR1. @Preconditions Initialize the TMR1 before calling this function. @Param None @Returns None @Example // Initialize TMR1 module // Start TMR1 TMR1_StartTimer(); // Do something else... */ void TMR1_StartTimer(void); /** @Summary This function stops the TMR1. @Description This function stops the TMR1 operation. This function must be called after the start of TMR1. @Preconditions Initialize the TMR1 before calling this function. @Param None @Returns None @Example // Initialize TMR1 module // Start TMR1 TMR1_StartTimer(); // Do something else... // Stop TMR1; TMR1_StopTimer(); */ void TMR1_StopTimer(void); /** @Summary Reads the TMR1 register. @Description This function reads the TMR1 register value and return it. @Preconditions Initialize the TMR1 before calling this function. @Param None @Returns This function returns the current value of TMR1 register. @Example // Initialize TMR1 module // Start TMR1 TMR1_StartTimer(); // Read the current value of TMR1 if(0 == TMR1_ReadTimer()) { // Do something else... // Reload the TMR value TMR1_Reload(); } */ uint16_t TMR1_ReadTimer(void); /** @Summary Writes the TMR1 register. @Description This function writes the TMR1 register. This function must be called after the initialization of TMR1. @Preconditions Initialize the TMR1 before calling this function. @Param timerVal - Value to write into TMR1 register. @Returns None @Example #define PERIOD 0x80 #define ZERO 0x00 while(1) { // Read the TMR1 register if(ZERO == TMR1_ReadTimer()) { // Do something else... // Write the TMR1 register TMR1_WriteTimer(PERIOD); } // Do something else... } */ void TMR1_WriteTimer(uint16_t timerVal); /** @Summary Reload the TMR1 register. @Description This function reloads the TMR1 register. This function must be called to write initial value into TMR1 register. @Preconditions Initialize the TMR1 before calling this function. @Param None @Returns None @Example while(1) { if(TMR1IF) { // Do something else... // clear the TMR1 interrupt flag TMR1IF = 0; // Reload the initial value of TMR1 TMR1_Reload(); } } */ void TMR1_Reload(void); /** @Summary Starts the single pulse acquisition in TMR1 gate operation. @Description This function starts the single pulse acquisition in TMR1 gate operation. This function must be used when the TMR1 gate is enabled. @Preconditions Initialize the TMR1 with gate enable before calling this function. @Param None @Returns None @Example uint16_t xVal; uint16_t yVal; // enable TMR1 singlepulse mode TMR1_StartSinglePulseAcquistion(); // check TMR1 gate status if(TMR1_CheckGateValueStatus()== 0) xVal = TMR1_ReadTimer(); // wait untill gate interrupt occured while(TMR1GIF == 0) { } yVal = TMR1_ReadTimer(); */ void TMR1_StartSinglePulseAcquisition(void); /** @Summary Check the current state of Timer1 gate. @Description This function reads the TMR1 gate value and return it. This function must be used when the TMR1 gate is enabled. @Preconditions Initialize the TMR1 with gate enable before calling this function. @Param None @Returns None @Example uint16_t xVal; uint16_t yVal; // enable TMR1 singlepulse mode TMR1_StartSinglePulseAcquistion(); // check TMR1 gate status if(TMR1_CheckGateValueStatus()== 0) xVal = TMR1_ReadTimer(); // wait untill gate interrupt occured while(TMR1IF == 0) { } yVal = TMR1_ReadTimer(); */ uint8_t TMR1_CheckGateValueStatus(void); /** @Summary Timer Interrupt Service Routine @Description Timer Interrupt Service Routine is called by the Interrupt Manager. @Preconditions Initialize the TMR1 module with interrupt before calling this ISR. @Param None @Returns None */ void TMR1_ISR(void); /** @Summary Set Timer Interrupt Handler @Description This sets the function to be called during the ISR @Preconditions Initialize the TMR1 module with interrupt before calling this. @Param Address of function to be set @Returns None */ void TMR1_SetInterruptHandler(void (* InterruptHandler)(void)); void TMR1G_SetInterruptHandler(void (* InterruptHandler)(void)); /** @Summary Timer Interrupt Handler @Description This is a function pointer to the function that will be called during the ISR @Preconditions Initialize the TMR1 module with interrupt before calling this isr. @Param None @Returns None */ extern void (*TMR1_InterruptHandler)(void); /** @Summary Default Timer Interrupt Handler @Description This is the default Interrupt Handler function @Preconditions Initialize the TMR1 module with interrupt before calling this isr. @Param None @Returns None */ void TMR1_DefaultInterruptHandler(void); void TMR1G_DefaultInterruptHandler(void); /** @Summary Timer Gate Interrupt Service Routine @Description Timer Gate Interrupt Service Routine is called by the Interrupt Manager. User can write the code in this function. @Preconditions Initialize the TMR1 module with gate interrupt before calling this isr. @Param None @Returns None @Example None */ void TMR1_GATE_ISR(void); //Sets polarity of the gate pin void TMR1G_Polarity(uint8_t pol); #ifdef __cplusplus // Provide C++ Compatibility } #endif #endif // TMR1_H /** End of File */