Files

copied
Last update 6 years 2 months
Filesmcc_generated_files
..
mtouch
epwm.c
epwm.h
interrupt_manager.c
interrupt_manager.h
mcc.c
mcc.h
pin_manager.c
pin_manager.h
tmr2.c
tmr2.h
tmr2.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 MPLAB(c) Code Configurator @Description This source file provides APIs for TMR2. Generation Information : Product Revision : MPLAB(c) Code Configurator - 4.15 Device : PIC16F1823 Driver Version : 2.00 The generated drivers are tested against the following: Compiler : XC8 1.35 MPLAB : MPLAB X 3.40 */ /* (c) 2016 Microchip Technology Inc. and its subsidiaries. You may use this software and any derivatives exclusively with Microchip products. 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, OR ITS INTERACTION WITH MICROCHIP PRODUCTS, COMBINATION WITH ANY OTHER PRODUCTS, OR USE IN ANY APPLICATION. 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. MICROCHIP PROVIDES THIS SOFTWARE CONDITIONALLY UPON YOUR ACCEPTANCE OF THESE TERMS. */ /** Section: Included Files */ #include <xc.h> #include "tmr2.h" /** Section: Global Variables Definitions */ extern void TMR2_CallBack(void); //void (*TMR2_InterruptHandler)(void); /** Section: TMR2 APIs */ void TMR2_Initialize(void) { // Set TMR2 to the options selected in the User Interface // T2CKPS 1:16; T2OUTPS 1:1; TMR2ON off; T2CON = 0x02; // PR2 255; PR2 = 0xFF; // TMR2 0; TMR2 = 0x00; // Clearing IF flag before enabling the interrupt. PIR1bits.TMR2IF = 0; // Enabling TMR2 interrupt. PIE1bits.TMR2IE = 1; // Set Default Interrupt Handler // TMR2_SetInterruptHandler(TMR2_DefaultInterruptHandler); // Start TMR2 TMR2_StartTimer(); } 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; //} void TMR2_ISR(void) { static volatile unsigned int CountCallBack = 0; // clear the TMR2 interrupt flag PIR1bits.TMR2IF = 0; // callback function - called every 12th pass if (++CountCallBack >= TMR2_INTERRUPT_TICKER_FACTOR) { // ticker function call TMR2_CallBack(); // reset ticker counter CountCallBack = 0; } } //void TMR2_CallBack(void) //{ // // Add your custom callback code here // // this code executes every TMR2_INTERRUPT_TICKER_FACTOR periods of TMR2 // if(TMR2_InterruptHandler) // { // TMR2_InterruptHandler(); // } //} // //void TMR2_SetInterruptHandler(void* InterruptHandler){ // TMR2_InterruptHandler = InterruptHandler; //} // //void TMR2_DefaultInterruptHandler(void){ // // add your TMR2 interrupt custom code // // or set custom function using TMR2_SetInterruptHandler() //} /** End of File */
Report a bug