From 319b3a68ee64d8549524b53fba2934e94c07d19e Mon Sep 17 00:00:00 2001 From: Joshua Drake Date: Tue, 23 Apr 2024 01:27:55 -0500 Subject: Added files that were forgotten in previous commits. --- mcc_generated_files/tmr1.c | 219 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 219 insertions(+) create mode 100644 mcc_generated_files/tmr1.c (limited to 'mcc_generated_files/tmr1.c') diff --git a/mcc_generated_files/tmr1.c b/mcc_generated_files/tmr1.c new file mode 100644 index 0000000..25bc139 --- /dev/null +++ b/mcc_generated_files/tmr1.c @@ -0,0 +1,219 @@ + +/** + TMR1 Generated Driver API Source File + + @Company + Microchip Technology Inc. + + @File Name + tmr1.c + + @Summary + This is the generated source file for the TMR1 driver using PIC24 / dsPIC33 / PIC32MM MCUs + + @Description + This source file provides APIs for driver for TMR1. + Generation Information : + Product Revision : PIC24 / dsPIC33 / PIC32MM MCUs - 1.171.4 + Device : PIC24FV16KM202 + The generated drivers are tested against the following: + Compiler : XC16 v2.10 + MPLAB : MPLAB X v6.05 +*/ + +/* + (c) 2020 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 +#include "tmr1.h" + +/** + Section: File specific functions +*/ +void (*TMR1_InterruptHandler)(void) = NULL; +void TMR1_CallBack(void); + +/** + Section: Data Type Definitions +*/ + +/** TMR Driver Hardware Instance Object + + @Summary + Defines the object required for the maintenance of the hardware instance. + + @Description + This defines the object required for the maintenance of the hardware + instance. This object exists once per hardware instance of the peripheral. + + Remarks: + None. +*/ + +typedef struct _TMR_OBJ_STRUCT +{ + /* Timer Elapsed */ + volatile bool timerElapsed; + /*Software Counter value*/ + volatile uint8_t count; + +} TMR_OBJ; + +static TMR_OBJ tmr1_obj; + +/** + Section: Driver Interface +*/ + +void TMR1_Initialize (void) +{ + //TMR1 0; + TMR1 = 0x00; + //Period = 1.5000128 s; Frequency = 10000000 Hz; PR1 39062; + PR1 = 0xE4E1; + //TCKPS 1:256; TON enabled; TSIDL disabled; TCS FOSC/2; TECS SOSC; TSYNC disabled; TGATE disabled; + T1CON = 0x8030; + + if(TMR1_InterruptHandler == NULL) + { + TMR1_SetInterruptHandler(&TMR1_CallBack); + } + + IFS0bits.T1IF = false; + IEC0bits.T1IE = true; + + tmr1_obj.timerElapsed = false; + +} + + +void __attribute__ ( ( interrupt, no_auto_psv ) ) _T1Interrupt ( ) +{ + /* Check if the Timer Interrupt/Status is set */ + + //***User Area Begin + + // ticker function call; + // ticker is 1 -> Callback function gets called everytime this ISR executes + if(TMR1_InterruptHandler) + { + TMR1_InterruptHandler(); + } + + //***User Area End + + tmr1_obj.count++; + tmr1_obj.timerElapsed = true; + IFS0bits.T1IF = false; +} + +void TMR1_Period16BitSet( uint16_t value ) +{ + /* Update the counter values */ + PR1 = value; + /* Reset the status information */ + tmr1_obj.timerElapsed = false; +} + +uint16_t TMR1_Period16BitGet( void ) +{ + return( PR1 ); +} + +void TMR1_Counter16BitSet ( uint16_t value ) +{ + /* Update the counter values */ + TMR1 = value; + /* Reset the status information */ + tmr1_obj.timerElapsed = false; +} + +uint16_t TMR1_Counter16BitGet( void ) +{ + return( TMR1 ); +} + + +void __attribute__ ((weak)) TMR1_CallBack(void) +{ + _LATB8 = 0; + _LATB7 = 1; +} + +void TMR1_SetInterruptHandler(void (* InterruptHandler)(void)) +{ + IEC0bits.T1IE = false; + TMR1_InterruptHandler = InterruptHandler; + IEC0bits.T1IE = true; +} + +void TMR1_Start( void ) +{ + /* Reset the status information */ + tmr1_obj.timerElapsed = false; + + /*Enable the interrupt*/ + IEC0bits.T1IE = true; + + /* Start the Timer */ + T1CONbits.TON = 1; +} + +void TMR1_Stop( void ) +{ + /* Stop the Timer */ + T1CONbits.TON = false; + + /*Disable the interrupt*/ + IEC0bits.T1IE = false; +} + +bool TMR1_GetElapsedThenClear(void) +{ + bool status; + + status = tmr1_obj.timerElapsed; + + if(status == true) + { + tmr1_obj.timerElapsed = false; + } + return status; +} + +int TMR1_SoftwareCounterGet(void) +{ + return tmr1_obj.count; +} + +void TMR1_SoftwareCounterClear(void) +{ + tmr1_obj.count = 0; +} + +/** + End of File +*/ -- cgit v1.2.3