49 #include "../inc/hw_adc.h" 50 #include "../inc/hw_fcfg.h" 51 #include "../inc/hw_memmap.h" 52 #include "../inc/hw_sys0.h" 53 #include "../inc/hw_types.h" 72 #define ADC_CLOCK_DIVIDER_1 ADC_CTL0_SCLKDIV_DIV_BY_1 75 #define ADC_CLOCK_DIVIDER_2 ADC_CTL0_SCLKDIV_DIV_BY_2 78 #define ADC_CLOCK_DIVIDER_4 ADC_CTL0_SCLKDIV_DIV_BY_4 81 #define ADC_CLOCK_DIVIDER_8 ADC_CTL0_SCLKDIV_DIV_BY_8 84 #define ADC_CLOCK_DIVIDER_16 ADC_CTL0_SCLKDIV_DIV_BY_16 87 #define ADC_CLOCK_DIVIDER_24 ADC_CTL0_SCLKDIV_DIV_BY_24 90 #define ADC_CLOCK_DIVIDER_32 ADC_CTL0_SCLKDIV_DIV_BY_32 93 #define ADC_CLOCK_DIVIDER_48 ADC_CTL0_SCLKDIV_DIV_BY_48 96 #define ADC_RESOLUTION_12_BIT ADC_CTL2_RES_BIT_12 99 #define ADC_RESOLUTION_10_BIT ADC_CTL2_RES_BIT_10 102 #define ADC_RESOLUTION_8_BIT ADC_CTL2_RES_BIT_8 105 #define ADC_FIXED_REFERENCE_1V4 0 108 #define ADC_FIXED_REFERENCE_2V5 1 111 #define ADC_EXTERNAL_REFERENCE 2 114 #define ADC_VDDS_REFERENCE 3 118 #define ADC_POWER_DOWN_POLICY_AUTO ADC_CTL0_PWRDN_AUTO 122 #define ADC_POWER_DOWN_POLICY_MANUAL ADC_CTL0_PWRDN_MANUAL 126 #define ADC_SEQUENCE_REPEATSEQUENCE ADC_CTL1_CONSEQ_REPEATSEQUENCE 129 #define ADC_SEQUENCE_REPEATSINGLE ADC_CTL1_CONSEQ_REPEATSINGLE 133 #define ADC_SEQUENCE_SEQUENCE ADC_CTL1_CONSEQ_SEQUENCE 137 #define ADC_SEQUENCE_SINGLE ADC_CTL1_CONSEQ_SINGLE 141 #define ADC_SAMPLE_MODE_AUTO ADC_CTL1_SAMPMODE_AUTO 148 #define ADC_SAMPLE_MODE_MANUAL ADC_CTL1_SAMPMODE_MANUAL 154 #define ADC_TRIGGER_SOURCE_EVENT ADC_CTL1_TRIGSRC_EVENT 162 #define ADC_TRIGGER_SOURCE_SOFTWARE ADC_CTL1_TRIGSRC_SOFTWARE 168 #define ADC_TRIGGER_POLICY_AUTO_NEXT ADC_MEMCTL0_TRG_AUTO_NEXT 171 #define ADC_TRIGGER_POLICY_TRIGGER_NEXT ADC_MEMCTL0_TRG_TRIGGER_NEXT 174 #define ADC_INT_MEMRES_23 ADC_IMASK0_MEMRESIFG23 177 #define ADC_INT_MEMRES_22 ADC_IMASK0_MEMRESIFG22 180 #define ADC_INT_MEMRES_21 ADC_IMASK0_MEMRESIFG21 183 #define ADC_INT_MEMRES_20 ADC_IMASK0_MEMRESIFG20 186 #define ADC_INT_MEMRES_19 ADC_IMASK0_MEMRESIFG19 189 #define ADC_INT_MEMRES_18 ADC_IMASK0_MEMRESIFG18 192 #define ADC_INT_MEMRES_17 ADC_IMASK0_MEMRESIFG17 195 #define ADC_INT_MEMRES_16 ADC_IMASK0_MEMRESIFG16 198 #define ADC_INT_MEMRES_15 ADC_IMASK0_MEMRESIFG15 201 #define ADC_INT_MEMRES_14 ADC_IMASK0_MEMRESIFG14 204 #define ADC_INT_MEMRES_13 ADC_IMASK0_MEMRESIFG13 207 #define ADC_INT_MEMRES_12 ADC_IMASK0_MEMRESIFG12 210 #define ADC_INT_MEMRES_11 ADC_IMASK0_MEMRESIFG11 213 #define ADC_INT_MEMRES_10 ADC_IMASK0_MEMRESIFG10 216 #define ADC_INT_MEMRES_09 ADC_IMASK0_MEMRESIFG9 219 #define ADC_INT_MEMRES_08 ADC_IMASK0_MEMRESIFG8 222 #define ADC_INT_MEMRES_07 ADC_IMASK0_MEMRESIFG7 225 #define ADC_INT_MEMRES_06 ADC_IMASK0_MEMRESIFG6 228 #define ADC_INT_MEMRES_05 ADC_IMASK0_MEMRESIFG5 231 #define ADC_INT_MEMRES_04 ADC_IMASK0_MEMRESIFG4 234 #define ADC_INT_MEMRES_03 ADC_IMASK0_MEMRESIFG3 237 #define ADC_INT_MEMRES_02 ADC_IMASK0_MEMRESIFG2 240 #define ADC_INT_MEMRES_01 ADC_IMASK0_MEMRESIFG1 243 #define ADC_INT_MEMRES_00 ADC_IMASK0_MEMRESIFG0 246 #define ADC_INT_ASCDONE ADC_IMASK0_ASCDONE 249 #define ADC_INT_UVIFG ADC_IMASK0_UVIFG 252 #define ADC_INT_DMADONE ADC_IMASK0_DMADONE 255 #define ADC_INT_INIFG ADC_IMASK0_INIFG 258 #define ADC_INT_LOWIFG ADC_IMASK0_LOWIFG 261 #define ADC_INT_HIGHIFG ADC_IMASK0_HIGHIFG 264 #define ADC_INT_TOVIFG ADC_IMASK0_TOVIFG 267 #define ADC_INT_OVIFG ADC_IMASK0_OVIFG 352 extern void ADCSetInput(uint32_t reference, uint8_t channel, uint32_t index);
464 HWREG(ADC_BASE + ADC_O_CTL1) |= ADC_CTL1_SC_START;
481 HWREG(ADC_BASE + ADC_O_CTL1) &= ~ADC_CTL1_SC_M;
504 HWREG(ADC_BASE + ADC_O_CTL0) |= ADC_CTL0_ENC_ON;
521 HWREG(ADC_BASE + ADC_O_CTL0) &= ~ADC_CTL0_ENC_M;
537 HWREG(ADC_BASE + ADC_O_CTL2) |= ADC_CTL2_DMAEN_EN;
549 HWREG(ADC_BASE + ADC_O_CTL2) &= ~ADC_CTL2_DMAEN_M;
568 while (HWREG(ADC_BASE + ADC_O_STA) & ADC_STA_BUSY_ACTIVE) {}
571 return HWREG(ADC_BASE + ADC_O_MEMRES0 + (4 * index));
591 if (HWREG(ADC_BASE + ADC_O_STA) & ADC_STA_BUSY_ACTIVE)
616 return HWREG(ADC_BASE + ADC_O_MEMRES0 + (4 * index));
633 extern uint32_t
ADCValueToMicrovolts(uint32_t adcCode, uint32_t bitResolution, uint32_t referenceVoltageMicroVolt);
659 HWREG(ADC_BASE + ADC_O_IMASK0) |= intFlags;
686 HWREG(ADC_BASE + ADC_O_IMASK0) &= ~(intFlags);
709 return (HWREG(ADC_BASE + ADC_O_RIS0));
732 return (HWREG(ADC_BASE + ADC_O_MIS0));
776 HWREG(ADC_BASE + ADC_O_ICLR0) = intFlags;
void ADCSetAdjustmentOffset(uint32_t reference)
Write correct offset value to ADC-peripheral trim register.
Definition: adc.c:429
void ADCSetTriggerSource(uint32_t triggerSource)
Set ADC trigger source.
Definition: adc.c:179
__STATIC_INLINE uint32_t ADCReadResultNonBlocking(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:613
void ADCSetSequence(uint32_t sequence)
Set conversion sequence.
Definition: adc.c:274
__STATIC_INLINE void ADCStartConversion(void)
Start conversion.
Definition: adc.h:462
uint16_t ADCGetAdjustmentGain(uint32_t reference)
Returns ADC gain value for given reference.
Definition: adc.c:374
__STATIC_INLINE uint32_t ADCReadResult(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:565
__STATIC_INLINE uint32_t ADCRawInterruptStatus(void)
Gets the current raw interrupt status.
Definition: adc.h:707
uint32_t ADCValueToMicrovolts(uint32_t adcCode, uint32_t bitResolution, uint32_t referenceVoltageMicroVolt)
Convert ADC code to microvolts.
Definition: adc.c:334
void ADCSetInput(uint32_t reference, uint8_t channel, uint32_t index)
Sets the ADC reference source and input channel.
Definition: adc.c:96
uint32_t ADCAdjustValueForGain(uint32_t adcValue, uint32_t bitResolution, uint16_t gain)
Performs ADC value gain adjustment.
Definition: adc.c:298
void ADCSetSamplingMode(uint32_t samplingMode)
Set ADC sampling mode.
Definition: adc.c:155
__STATIC_INLINE void ADCStopConversion(void)
Stop sample phase of a conversion.
Definition: adc.h:479
__STATIC_INLINE void ADCDisableDmaTrigger(void)
Disable DMA trigger for data transfer.
Definition: adc.h:547
__STATIC_INLINE void ADCEnableDmaTrigger(void)
Enable DMA trigger for data transfer.
Definition: adc.h:535
__STATIC_INLINE void ADCDisableConversion(void)
Disable conversion.
Definition: adc.h:519
void ADCSetPowerDownPolicy(uint32_t powerDownPolicy)
Set power down policy.
Definition: adc.c:250
__STATIC_INLINE void ADCClearInterrupt(uint32_t intFlags)
Clears ADC interrupt sources.
Definition: adc.h:773
__STATIC_INLINE bool ADCIsBusy(void)
Check if ADC is busy.
Definition: adc.h:588
__STATIC_INLINE void ADCDisableInterrupt(uint32_t intFlags)
Disables individual ADC interrupt sources.
Definition: adc.h:683
void ADCSetSampleDuration(uint32_t clkDiv, uint16_t clkCycles)
Sets the clock-divider value, and sample duration.
Definition: adc.c:44
__STATIC_INLINE void ADCEnableInterrupt(uint32_t intFlags)
Enables individual ADC interrupt sources.
Definition: adc.h:656
__STATIC_INLINE uint32_t ADCMaskedInterruptStatus(void)
Gets the current masked interrupt status.
Definition: adc.h:730
#define __STATIC_INLINE
Definition: cmsis_gcc.h:47
void ADCSetResolution(uint32_t resolution)
Sets the ADC bit resolution.
Definition: adc.c:72
__STATIC_INLINE void ADCEnableConversion(void)
Enable conversion.
Definition: adc.h:502
void ADCSetMemctlRange(uint32_t start, uint32_t stop)
Set start and stop control registers.
Definition: adc.c:227
void ADCSetTriggerPolicy(uint32_t triggerPolicy, uint32_t index)
Set ADC trigger policy.
Definition: adc.c:203