Initial commit
This commit is contained in:
		
							
								
								
									
										135
									
								
								solar_panel.X/mcc_generated_files/adc.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										135
									
								
								solar_panel.X/mcc_generated_files/adc.c
									
									
									
									
									
										Normal 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 | ||||
| */ | ||||
		Reference in New Issue
	
	Block a user