summaryrefslogtreecommitdiff
path: root/mcc_generated_files/tmr1.c
diff options
context:
space:
mode:
authorJoshua Drake <joshua.ellis.drake@gmail.com>2024-04-23 01:27:55 -0500
committerJoshua Drake <joshua.ellis.drake@gmail.com>2024-04-23 01:27:55 -0500
commit319b3a68ee64d8549524b53fba2934e94c07d19e (patch)
treeffe9a3f58471d139a3020d0592e040242b145ab5 /mcc_generated_files/tmr1.c
parentbe339d49fcfd3a09b8fdf590001e8e0f4369e4d3 (diff)
Added files that were forgotten in previous commits.
Diffstat (limited to 'mcc_generated_files/tmr1.c')
-rw-r--r--mcc_generated_files/tmr1.c219
1 files changed, 219 insertions, 0 deletions
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 <stdio.h>
+#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
+*/