77 .ComparatorTasks = NULL,
116 ADCON1L = (uint16_t)0x8000 & (uint16_t)0x7FFF;
126 ADCON3H = (uint16_t)0x83 & (uint16_t)0xFF00;
224 ADCON5H = (uint16_t)0x400 & (uint16_t)0xF0FF;
276 ADCON5Hbits.WARMTIME = 0xF;
278 ADCON1Lbits.ADON = 0x1;
312 ADCON1Lbits.ADON = 0;
410 ADCON5Lbits.C0PWR = 1;
411 while(ADCON5Lbits.C0RDY == 0)
414 ADCON3Hbits.C0EN = 1;
417 ADCON5Lbits.C1PWR = 1;
418 while(ADCON5Lbits.C1RDY == 0)
421 ADCON3Hbits.C1EN = 1;
431 ADCON5Lbits.SHRPWR = 1;
432 while(ADCON5Lbits.SHRRDY == 0)
435 ADCON3Hbits.SHREN = 1;
440 uint16_t adcTriggerSourceValue = 0x0U;
526 return adcTriggerSourceValue;
531 uint16_t adcTriggerValue;
536 ADTRIG0Hbits.TRGSRC2 = adcTriggerValue;
539 ADTRIG1Hbits.TRGSRC7 = adcTriggerValue;
542 ADTRIG2Hbits.TRGSRC10 = adcTriggerValue;
545 ADTRIG3Hbits.TRGSRC14 = adcTriggerValue;
548 ADTRIG4Hbits.TRGSRC19 = adcTriggerValue;
551 ADTRIG0Lbits.TRGSRC0 = adcTriggerValue;
554 ADTRIG0Lbits.TRGSRC1 = adcTriggerValue;
575void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCInterrupt (
void )
580 (*ADC1_CommonHandler)();
583 if(IFS5bits.ADCAN2IF == 1)
589 (*ADC1_ChannelHandler)(
VSEC, adcVal);
591 IFS5bits.ADCAN2IF = 0;
593 if(IFS6bits.ADCAN7IF == 1)
599 (*ADC1_ChannelHandler)(
IPRI_CT, adcVal);
601 IFS6bits.ADCAN7IF = 0;
603 if(IFS6bits.ADCAN10IF == 1)
609 (*ADC1_ChannelHandler)(
VPRI, adcVal);
611 IFS6bits.ADCAN10IF = 0;
613 if(IFS6bits.ADCAN14IF == 1)
619 (*ADC1_ChannelHandler)(
TEMP, adcVal);
621 IFS6bits.ADCAN14IF = 0;
623 if(IFS6bits.ADCAN19IF == 1)
629 (*ADC1_ChannelHandler)(
VRAIL_5V, adcVal);
631 IFS6bits.ADCAN19IF = 0;
633 if(IFS5bits.ADCAN0IF == 1)
639 (*ADC1_ChannelHandler)(
ISEC_CT, adcVal);
641 IFS5bits.ADCAN0IF = 0;
643 if(IFS5bits.ADCAN1IF == 1)
649 (*ADC1_ChannelHandler)(
ISEC_AVG, adcVal);
651 IFS5bits.ADCAN1IF = 0;
660 if(IFS5bits.ADCIF == 1)
664 (*ADC1_CommonHandler)();
687void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN2Interrupt (
void )
695 (*ADC1_ChannelHandler)(
VSEC, valVSEC);
699 IFS5bits.ADCAN2IF = 0;
702void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN7Interrupt (
void )
706 valIPRI_CT = ADCBUF7;
710 (*ADC1_ChannelHandler)(
IPRI_CT, valIPRI_CT);
714 IFS6bits.ADCAN7IF = 0;
717void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN10Interrupt (
void )
725 (*ADC1_ChannelHandler)(
VPRI, valVPRI);
729 IFS6bits.ADCAN10IF = 0;
732void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN14Interrupt (
void )
740 (*ADC1_ChannelHandler)(
TEMP, valTEMP);
744 IFS6bits.ADCAN14IF = 0;
747void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN19Interrupt (
void )
749 uint16_t valVRAIL_5V;
751 valVRAIL_5V = ADCBUF19;
755 (*ADC1_ChannelHandler)(
VRAIL_5V, valVRAIL_5V);
759 IFS6bits.ADCAN19IF = 0;
763void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN0Interrupt (
void )
767 valISEC_CT = ADCBUF0;
771 (*ADC1_ChannelHandler)(
ISEC_CT, valISEC_CT);
775 IFS5bits.ADCAN0IF = 0;
778void __attribute__ ( ( __interrupt__ , auto_psv, weak ) ) _ADCAN1Interrupt (
void )
780 uint16_t valISEC_AVG;
782 valISEC_AVG = ADCBUF1;
786 (*ADC1_ChannelHandler)(
ISEC_AVG, valISEC_AVG);
790 IFS5bits.ADCAN1IF = 0;
801 if((
bool)ADSTATLbits.AN2RDY == 1)
808 (*ADC1_ChannelHandler)(channel, adcVal);
813 if((
bool)ADSTATLbits.AN7RDY == 1)
820 (*ADC1_ChannelHandler)(channel, adcVal);
825 if((
bool)ADSTATLbits.AN10RDY == 1)
832 (*ADC1_ChannelHandler)(channel, adcVal);
837 if((
bool)ADSTATLbits.AN14RDY == 1)
844 (*ADC1_ChannelHandler)(channel, adcVal);
849 if((
bool)ADSTATHbits.AN19RDY == 1)
856 (*ADC1_ChannelHandler)(channel, adcVal);
861 if((
bool)ADSTATLbits.AN0RDY == 1)
868 (*ADC1_ChannelHandler)(channel, adcVal);
873 if((
bool)ADSTATLbits.AN1RDY == 1)
880 (*ADC1_ChannelHandler)(channel, adcVal);
void __attribute__((weak))
static void(* ADC1_ComparatorHandler)(enum ADC_CMP comparator)
static void(* ADC1_CommonHandler)(void)
const struct ADC_MULTICORE adc1Multicore
static uint16_t ADC1_TriggerSourceValueGet(enum ADC_PWM_INSTANCE pwmInstance, enum ADC_PWM_TRIGGERS triggerNumber)
static void(* ADC1_ChannelHandler)(enum ADC_CHANNEL channel, uint16_t adcVal)
static bool ADC1_IsConversionComplete(enum ADC_CHANNEL channel)
This inline function returns the status of conversion.This function is used to determine if conversio...
static void ADC1_InterruptFlagClear(void)
Clears interrupt flag manually.
void ADC1_CommonCallback(void)
This is the default callback with weak attribute. The user can override and implement the default cal...
static void ADC1_IndividualChannelInterruptPrioritySet(enum ADC_CHANNEL channel, enum INTERRUPT_PRIORITY priorityValue)
This inline function allows selection of priority for individual channel interrupt.
static void ADC1_ResolutionSet(enum ADC_RESOLUTION_TYPE resolution)
This inline function helps to configure all cores with same resolution.
static void ADC1_IndividualChannelInterruptDisable(enum ADC_CHANNEL channel)
This inline function disables individual channel interrupt.
void ADC1_ComparatorCallback(enum ADC_CMP comparator)
Comparator callback function.
void ADC1_Deinitialize(void)
Deinitializes the ADC1 to POR values.
void ADC1_PWMTriggerSourceSet(enum ADC_CHANNEL channel, enum ADC_PWM_INSTANCE pwmInstance, enum ADC_PWM_TRIGGERS triggerNumber)
Sets PWM trigger source for corresponding analog input.
void ADC1_SharedCorePowerEnable(void)
Enables power for ADC1 shared Core This function is used to set the analog and digital power for ADC1...
static void ADC1_IndividualChannelInterruptEnable(enum ADC_CHANNEL channel)
This inline function enables individual channel interrupt.
void ADC1_Tasks(void)
This function is used to implement the tasks for polled implementations.
static void ADC1_Enable(void)
This inline function enables the ADC1 module.
void ADC1_ComparatorCallbackRegister(void(*callback)(enum ADC_CMP comparator))
This function can be used to override default callback and to define custom callback for ADC1_Compara...
const struct ADC_INTERFACE ADC1
Structure object of type ADC_INTERFACE with the custom name given by the user in the Melody Driver Us...
static void ADC1_InterruptEnable(void)
This inline function enables the ADC1 interrupt.
static void ADC1_InterruptPrioritySet(uint16_t priorityValue)
This inline function allows selection of priority for interrupt.
static void ADC1_IndividualChannelInterruptFlagClear(enum ADC_CHANNEL channel)
This inline function clears individual channel interrupt flag.
void ADC1_ChannelTasks(enum ADC_CHANNEL channel)
This function call used only in polling mode, if channel conversion is done for requested channel,...
void ADC1_ChannelCallback(enum ADC_CHANNEL channel, uint16_t adcVal)
This is the default callback function for all the analog channels. This callback is triggered once th...
static void ADC1_SoftwareTriggerDisable(void)
This inline function resets software common trigger.
static void ADC1_Disable(void)
This inline function disables the ADC1 module.
void ADC1_Initialize(void)
Initializes ADC1 module, using the given initialization data This function must be called before any ...
static void ADC1_InterruptDisable(void)
This inline function disables the ADC1 interrupt.
static void ADC1_ChannelSelect(enum ADC_CHANNEL channel)
This inline function allows selection of a channel for conversion.
static void ADC1_SoftwareTriggerEnable(void)
This inline function sets software common trigger.
void ADC1_CommonCallbackRegister(void(*callback)(void))
This function can be used to override default callback and to define custom callback for ADC1 Common ...
void ADC1_CorePowerEnable(enum ADC_DEDICATED_CORE core)
Enables analog and digital power for ADC1 dedicated core.
static uint16_t ADC1_ConversionResultGet(enum ADC_CHANNEL channel)
Returns the conversion value for the channel selected.
void ADC1_ChannelCallbackRegister(void(*callback)(enum ADC_CHANNEL channel, uint16_t adcVal))
This function can be used to override default callback ADC1_ChannelCallback and to define custom call...
Structure containing the function pointers of ADC driver.
void(* Initialize)(void)
Pointer to ADCx_Initialize e.g. ADC1_Initialize.
Structure containing the function pointers of ADC driver.
void(* ChannelTasks)(enum ADC_CHANNEL channel)
Pointer to ADCx_ChannelTasks e.g. ADC1_ChannelTasks.