migration
This commit is contained in:
167
mcc_generated_files/tmr0.c
Normal file
167
mcc_generated_files/tmr0.c
Normal file
@@ -0,0 +1,167 @@
|
||||
/**
|
||||
TMR0 Generated Driver File
|
||||
|
||||
@Company
|
||||
Microchip Technology Inc.
|
||||
|
||||
@File Name
|
||||
tmr0.c
|
||||
|
||||
@Summary
|
||||
This is the generated driver implementation file for the TMR0 driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs
|
||||
|
||||
@Description
|
||||
This source file provides APIs for TMR0.
|
||||
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 "tmr0.h"
|
||||
|
||||
/**
|
||||
Section: Global Variables Definitions
|
||||
*/
|
||||
|
||||
void (*TMR0_InterruptHandler)(void);
|
||||
|
||||
volatile uint16_t timer0ReloadVal;
|
||||
|
||||
/**
|
||||
Section: TMR0 APIs
|
||||
*/
|
||||
|
||||
|
||||
void TMR0_Initialize(void)
|
||||
{
|
||||
// Set TMR0 to the options selected in the User Interface
|
||||
|
||||
//Enable 16bit timer mode before assigning value to TMR0H
|
||||
T0CONbits.T08BIT = 0;
|
||||
|
||||
// TMR0H 158;
|
||||
TMR0H = 0x9E;
|
||||
|
||||
// TMR0L 87;
|
||||
TMR0L = 0x57;
|
||||
|
||||
|
||||
// Load TMR0 value to the 16-bit reload variable
|
||||
timer0ReloadVal = (uint16_t)((TMR0H << 8) | TMR0L);
|
||||
|
||||
// Clear Interrupt flag before enabling the interrupt
|
||||
INTCONbits.TMR0IF = 0;
|
||||
|
||||
// Enabling TMR0 interrupt.
|
||||
INTCONbits.TMR0IE = 1;
|
||||
|
||||
// Set Default Interrupt Handler
|
||||
TMR0_SetInterruptHandler(TMR0_DefaultInterruptHandler);
|
||||
|
||||
// T0PS 1:2; T08BIT 16-bit; T0SE Increment_hi_lo; T0CS FOSC/4; TMR0ON enabled; PSA not_assigned;
|
||||
T0CON = 0x98;
|
||||
}
|
||||
|
||||
void TMR0_StartTimer(void)
|
||||
{
|
||||
// Start the Timer by writing to TMR0ON bit
|
||||
T0CONbits.TMR0ON = 1;
|
||||
}
|
||||
|
||||
void TMR0_StopTimer(void)
|
||||
{
|
||||
// Stop the Timer by writing to TMR0ON bit
|
||||
T0CONbits.TMR0ON = 0;
|
||||
}
|
||||
|
||||
uint16_t TMR0_ReadTimer(void)
|
||||
{
|
||||
uint16_t readVal;
|
||||
uint8_t readValLow;
|
||||
uint8_t readValHigh;
|
||||
|
||||
readValLow = TMR0L;
|
||||
readValHigh = TMR0H;
|
||||
readVal = ((uint16_t)readValHigh << 8) + readValLow;
|
||||
|
||||
return readVal;
|
||||
}
|
||||
|
||||
void TMR0_WriteTimer(uint16_t timerVal)
|
||||
{
|
||||
// Write to the Timer0 register
|
||||
TMR0H = timerVal >> 8;
|
||||
TMR0L = (uint8_t) timerVal;
|
||||
}
|
||||
|
||||
void TMR0_Reload(void)
|
||||
{
|
||||
// Write to the Timer0 register
|
||||
TMR0H = timer0ReloadVal >> 8;
|
||||
TMR0L = (uint8_t) timer0ReloadVal;
|
||||
}
|
||||
|
||||
void TMR0_ISR(void)
|
||||
{
|
||||
|
||||
// clear the TMR0 interrupt flag
|
||||
INTCONbits.TMR0IF = 0;
|
||||
|
||||
// reload TMR0
|
||||
// Write to the Timer0 register
|
||||
TMR0H = timer0ReloadVal >> 8;
|
||||
TMR0L = (uint8_t) timer0ReloadVal;
|
||||
|
||||
if(TMR0_InterruptHandler)
|
||||
{
|
||||
TMR0_InterruptHandler();
|
||||
}
|
||||
|
||||
// add your TMR0 interrupt custom code
|
||||
}
|
||||
|
||||
|
||||
void TMR0_SetInterruptHandler(void (* InterruptHandler)(void)){
|
||||
TMR0_InterruptHandler = InterruptHandler;
|
||||
}
|
||||
|
||||
void TMR0_DefaultInterruptHandler(void){
|
||||
// add your TMR0 interrupt custom code
|
||||
// or set custom function using TMR0_SetInterruptHandler()
|
||||
}
|
||||
|
||||
/**
|
||||
End of File
|
||||
*/
|
||||
Reference in New Issue
Block a user