Initial commit

This commit is contained in:
2023-02-24 14:34:16 +01:00
commit 157655cbfe
91 changed files with 133641 additions and 0 deletions

View File

@ -0,0 +1,135 @@
/**
ADC Generated Driver File
@Company
Microchip Technology Inc.
@File Name
adc.c
@Summary
This is the generated driver implementation file for the ADC driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description
This source file provides implementations for driver APIs for ADC.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.02
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 "adc.h"
#include "device_config.h"
void (*ADC_InterruptHandler)(void);
/**
Section: ADC Module APIs
*/
void ADC_Initialize(void)
{
// set the ADC to the options selected in the User Interface
// VCFG1 VSS; VCFG0 VDD;
ADCON1 = 0x00;
// ADFM left; ACQT 0; ADCS FOSC/2;
ADCON2 = 0x00;
// ADRESL 0;
ADRESL = 0x00;
// ADRESH 0;
ADRESH = 0x00;
// GO_nDONE stop; ADCAL Normal_a/d_operation; ADON enabled; CHS AN0;
ADCON0 = 0x01;
}
void ADC_SelectChannel(adc_channel_t channel)
{
// select the A/D channel
ADCON0bits.CHS = channel;
// Turn on the ADC module
ADCON0bits.ADON = 1;
}
void ADC_StartConversion(void)
{
// Start the conversion
ADCON0bits.GO_nDONE = 1;
}
bool ADC_IsConversionDone(void)
{
// Start the conversion
return ((bool)(!ADCON0bits.GO_nDONE));
}
adc_result_t ADC_GetConversionResult(void)
{
// Conversion finished, return the result
return ((adc_result_t)((ADRESH << 8) + ADRESL));
}
adc_result_t ADC_GetConversion(adc_channel_t channel)
{
// select the A/D channel
ADCON0bits.CHS = channel;
// Turn on the ADC module
ADCON0bits.ADON = 1;
// Start the conversion
ADCON0bits.GO_nDONE = 1;
// Wait for the conversion to finish
while (ADCON0bits.GO_nDONE)
{
}
// Conversion finished, return the result
return ((adc_result_t)((ADRESH << 8) + ADRESL));
}
void ADC_TemperatureAcquisitionDelay(void)
{
__delay_us(200);
}
/**
End of File
*/

View File

@ -0,0 +1,326 @@
/**
ADC Generated Driver API Header File
@Company
Microchip Technology Inc.
@File Name
adc.h
@Summary
This is the generated header file for the ADC driver using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description
This header file provides APIs for driver for ADC.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.02
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.
*/
#ifndef ADC_H
#define ADC_H
/**
Section: Included Files
*/
#include <xc.h>
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus // Provide C++ Compatibility
extern "C" {
#endif
/**
Section: Data Types Definitions
*/
/**
* result size of an A/D conversion
*/
typedef uint16_t adc_result_t;
/**
* result type of a Double ADC conversion
*/
typedef struct
{
adc_result_t adcResult1;
adc_result_t adcResult2;
} adc_sync_double_result_t;
/** ADC Channel Definition
@Summary
Defines the channels available for conversion.
@Description
This routine defines the channels that are available for the module to use.
Remarks:
None
*/
typedef enum
{
voltage = 0x5,
current = 0x6
} adc_channel_t;
/**
Section: ADC Module APIs
*/
/**
@Summary
Initializes the ADC
@Description
This routine initializes the Initializes the ADC.
This routine must be called before any other ADC routine is called.
This routine should only be called once during system initialization.
@Preconditions
None
@Param
None
@Returns
None
@Comment
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
convertedValue = ADC_GetConversionResult();
</code>
*/
void ADC_Initialize(void);
/**
@Summary
Allows selection of a channel for conversion
@Description
This routine is used to select desired channel for conversion.
available
@Preconditions
ADC_Initialize() function should have been called before calling this function.
@Returns
None
@Param
Pass in required channel number
"For available channel refer to enum under adc.h file"
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
ADC_SelectChannel(AN1_Channel);
ADC_StartConversion();
convertedValue = ADC_GetConversionResult();
</code>
*/
void ADC_SelectChannel(adc_channel_t channel);
/**
@Summary
Starts conversion
@Description
This routine is used to start conversion of desired channel.
@Preconditions
ADC_Initialize() function should have been called before calling this function.
@Returns
None
@Param
None
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
ADC_StartConversion();
convertedValue = ADC_GetConversionResult();
</code>
*/
void ADC_StartConversion(void);
/**
@Summary
Returns true when the conversion is completed otherwise false.
@Description
This routine is used to determine if conversion is completed.
When conversion is complete routine returns true. It returns false otherwise.
@Preconditions
ADC_Initialize() and ADC_StartConversion(void)
function should have been called before calling this function.
@Returns
true - If conversion is complete
false - If conversion is not completed
@Param
None
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
ADC_StartConversion();
while(!ADC_IsConversionDone());
convertedValue = ADC_GetConversionResult();
</code>
*/
bool ADC_IsConversionDone(void);
/**
@Summary
Returns the ADC conversion value.
@Description
This routine is used to get the analog to digital converted value. This
routine gets converted values from the channel specified.
@Preconditions
This routine returns the conversion value only after the conversion is complete.
Completion status can be checked using
ADC_IsConversionDone() routine.
@Returns
Returns the converted value.
@Param
None
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
ADC_StartConversion();
while(ADC_IsConversionDone());
convertedValue = ADC_GetConversionResult();
</code>
*/
adc_result_t ADC_GetConversionResult(void);
/**
@Summary
Returns the ADC conversion value
also allows selection of a channel for conversion.
@Description
This routine is used to select desired channel for conversion
and to get the analog to digital converted value.
@Preconditions
ADC_Initialize() function should have been called before calling this function.
@Returns
Returns the converted value.
@Param
Pass in required channel number.
"For available channel refer to enum under adc.h file"
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
conversion = ADC_GetConversion(AN1_Channel);
</code>
*/
adc_result_t ADC_GetConversion(adc_channel_t channel);
/**
@Summary
Acquisition Delay for temperature sensor
@Description
This routine should be called when temperature sensor is used.
@Preconditions
ADC_Initialize() function should have been called before calling this function.
@Returns
None
@Param
None
@Example
<code>
uint16_t convertedValue;
ADC_Initialize();
ADC_StartConversion();
ADC_temperatureAcquisitionDelay();
convertedValue = ADC_GetConversionResult();
</code>
*/
void ADC_TemperatureAcquisitionDelay(void);
#ifdef __cplusplus // Provide C++ Compatibility
}
#endif
#endif //ADC_H
/**
End of File
*/

View File

@ -0,0 +1,76 @@
/**
@Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Source File
@Company:
Microchip Technology Inc.
@File Name:
mcc.c
@Summary:
This is the device_config.c file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description:
This header file provides implementations for driver APIs for all modules selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.00
The generated drivers are tested against the following:
Compiler : XC8 2.36 and above or later
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.
*/
// Configuration bits: selected in the GUI
// CONFIG1L
#pragma config WDT = OFF // Watchdog Timer Enable bit->WDT disabled (control is placed on SWDTEN bit)
#pragma config STVR = ON // Stack Overflow/Underflow Reset Enable bit->Reset on stack overflow/underflow enabled
#pragma config XINST = OFF // Extended Instruction Set Enable bit->Instruction set extension and Indexed Addressing mode disabled (Legacy mode)
#pragma config DEBUG = OFF // Background Debugger Enable bit->Background debugger disabled; RB6 and RB7 configured as general purpose I/O pins
// CONFIG1H
#pragma config CP0 = OFF // Code Protection bit->Program memory is not code-protected
// CONFIG2L
#pragma config FOSC = HS // Oscillator Selection bits->HS oscillator
#pragma config FOSC2 = ON // Default/Reset System Clock Select bit->Clock selected by FOSC1:FOSC0 as system clock is enabled when OSCCON<1:0> = 00
#pragma config FCMEN = ON // Fail-Safe Clock Monitor Enable->Fail-Safe Clock Monitor enabled
#pragma config IESO = ON // Two-Speed Start-up (Internal/External Oscillator Switchover) Control bit->Two-Speed Start-up enabled
// CONFIG2H
#pragma config WDTPS = 32768 // Watchdog Timer Postscaler Select bits->1:32768
// CONFIG3L
#pragma config EASHFT = ON // External Address Bus Shift Enable bit->Address shifting enabled; address on external bus is offset to start at 000000h
#pragma config MODE = MM // External Memory Bus->Microcontroller mode, external bus disabled
#pragma config BW = 16 // Data Bus Width Select bit->16-Bit Data Width mode
#pragma config WAIT = OFF // External Bus Wait Enable bit->Wait states for operations on external memory bus disabled
// CONFIG3H
#pragma config CCP2MX = ON // ECCP2 MUX bit->ECCP2/P2A is multiplexed with RC1
#pragma config ECCPMX = ON // ECCP MUX bit->ECCP1 outputs (P1B/P1C) are multiplexed with RE6 and RE5; ECCP3 outputs (P3B/P3C) are multiplexed with RE4 and RE3
#pragma config ETHLED = ON // Ethernet LED Enable bit->RA0/RA1 are multiplexed with LEDA/LEDB when Ethernet module is enabled and function as I/O when Ethernet is disabled

View File

@ -0,0 +1,55 @@
/**
@Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Header File
@Company:
Microchip Technology Inc.
@File Name:
mcc.c
@Summary:
This is the device_config.h file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description:
This header file provides implementations for driver APIs for all modules selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.00
The generated drivers are tested against the following:
Compiler : XC8 2.36 and above or later
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.
*/
#ifndef DEVICE_CONFIG_H
#define DEVICE_CONFIG_H
#define _XTAL_FREQ 25000000
#endif /* DEVICE_CONFIG_H */
/**
End of File
*/

View File

@ -0,0 +1,69 @@
/**
@Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Source File
@Company:
Microchip Technology Inc.
@File Name:
mcc.c
@Summary:
This is the mcc.c file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description:
This header file provides implementations for driver APIs for all modules selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.00
The generated drivers are tested against the following:
Compiler : XC8 2.36 and above or later
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.
*/
#include "mcc.h"
void SYSTEM_Initialize(void)
{
PIN_MANAGER_Initialize();
OSCILLATOR_Initialize();
ADC_Initialize();
}
void OSCILLATOR_Initialize(void)
{
// SCS Primary_OSC; OSTS intosc; IDLEN disabled;
OSCCON = 0x02;
// PLLEN disabled; PPST0 disabled; PPRE divide_by_3; PPST1 divide_by_3;
OSCTUNE = 0x00;
}
/**
End of File
*/

View File

@ -0,0 +1,88 @@
/**
@Generated PIC10 / PIC12 / PIC16 / PIC18 MCUs Header File
@Company:
Microchip Technology Inc.
@File Name:
mcc.h
@Summary:
This is the mcc.h file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description:
This header file provides implementations for driver APIs for all modules selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.00
The generated drivers are tested against the following:
Compiler : XC8 2.36 and above or later
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.
*/
#ifndef MCC_H
#define MCC_H
#include <xc.h>
#include "device_config.h"
#include "pin_manager.h"
#include <stdint.h>
#include <stdbool.h>
#include <conio.h>
#include "adc.h"
/**
* @Param
none
* @Returns
none
* @Description
Initializes the device to the default states configured in the
* MCC GUI
* @Example
SYSTEM_Initialize(void);
*/
void SYSTEM_Initialize(void);
/**
* @Param
none
* @Returns
none
* @Description
Initializes the oscillator to the default states configured in the
* MCC GUI
* @Example
OSCILLATOR_Initialize(void);
*/
void OSCILLATOR_Initialize(void);
#endif /* MCC_H */
/**
End of File
*/

View File

@ -0,0 +1,97 @@
/**
Generated Pin Manager File
Company:
Microchip Technology Inc.
File Name:
pin_manager.c
Summary:
This is the Pin Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
Description:
This header file provides implementations for pin APIs for all pins selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Driver Version : 2.0
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.
*/
#include "pin_manager.h"
void PIN_MANAGER_Initialize(void)
{
/**
LATx registers
*/
LATE = 0x00;
LATJ = 0x00;
LATD = 0x00;
LATA = 0x00;
LATF = 0x00;
LATB = 0x00;
LATG = 0x00;
LATC = 0x00;
LATH = 0x00;
/**
TRISx registers
*/
TRISE = 0xFF;
TRISF = 0xFF;
TRISA = 0x3F;
TRISG = 0xFF;
TRISB = 0xFF;
TRISH = 0xFF;
TRISC = 0xFF;
TRISD = 0xFF;
TRISJ = 0xFF;
/**
PCFG setting
*/
ADCON1bits.PCFG = 0x00;
}
void PIN_MANAGER_IOC(void)
{
}
/**
End of File
*/

View File

@ -0,0 +1,128 @@
/**
@Generated Pin Manager Header File
@Company:
Microchip Technology Inc.
@File Name:
pin_manager.h
@Summary:
This is the Pin Manager file generated using PIC10 / PIC12 / PIC16 / PIC18 MCUs
@Description:
This header file provides implementations for pin APIs for all pins selected in the GUI.
Generation Information :
Product Revision : PIC10 / PIC12 / PIC16 / PIC18 MCUs - 1.81.8
Device : PIC18F97J60
Version : 2.0
The generated drivers are tested against the following:
Compiler : XC8 2.36 and above
MPLAB : MPLAB X 6.00
Copyright (c) 2013 - 2015 released Microchip Technology Inc. All rights reserved.
*/
/*
(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 PIN_MANAGER_H
#define PIN_MANAGER_H
/**
Section: Included Files
*/
#include <xc.h>
#define INPUT 1
#define OUTPUT 0
#define HIGH 1
#define LOW 0
#define ANALOG 1
#define DIGITAL 0
#define PULL_UP_ENABLED 1
#define PULL_UP_DISABLED 0
// get/set voltage aliases
#define voltage_TRIS TRISFbits.TRISF0
#define voltage_LAT LATFbits.LATF0
#define voltage_PORT PORTFbits.RF0
#define voltage_ANS anselRF0bits.anselRF0
#define voltage_SetHigh() do { LATFbits.LATF0 = 1; } while(0)
#define voltage_SetLow() do { LATFbits.LATF0 = 0; } while(0)
#define voltage_Toggle() do { LATFbits.LATF0 = ~LATFbits.LATF0; } while(0)
#define voltage_GetValue() PORTFbits.RF0
#define voltage_SetDigitalInput() do { TRISFbits.TRISF0 = 1; } while(0)
#define voltage_SetDigitalOutput() do { TRISFbits.TRISF0 = 0; } while(0)
#define voltage_SetAnalogMode() do { anselRF0bits.anselRF0 = 1; } while(0)
#define voltage_SetDigitalMode() do { anselRF0bits.anselRF0 = 0; } while(0)
// get/set current aliases
#define current_TRIS TRISFbits.TRISF1
#define current_LAT LATFbits.LATF1
#define current_PORT PORTFbits.RF1
#define current_ANS anselRF1bits.anselRF1
#define current_SetHigh() do { LATFbits.LATF1 = 1; } while(0)
#define current_SetLow() do { LATFbits.LATF1 = 0; } while(0)
#define current_Toggle() do { LATFbits.LATF1 = ~LATFbits.LATF1; } while(0)
#define current_GetValue() PORTFbits.RF1
#define current_SetDigitalInput() do { TRISFbits.TRISF1 = 1; } while(0)
#define current_SetDigitalOutput() do { TRISFbits.TRISF1 = 0; } while(0)
#define current_SetAnalogMode() do { anselRF1bits.anselRF1 = 1; } while(0)
#define current_SetDigitalMode() do { anselRF1bits.anselRF1 = 0; } while(0)
/**
@Param
none
@Returns
none
@Description
GPIO and peripheral I/O initialization
@Example
PIN_MANAGER_Initialize();
*/
void PIN_MANAGER_Initialize (void);
/**
* @Param
none
* @Returns
none
* @Description
Interrupt on Change Handling routine
* @Example
PIN_MANAGER_IOC();
*/
void PIN_MANAGER_IOC(void);
#endif // PIN_MANAGER_H
/**
End of File
*/