49 #include "../inc/hw_types.h" 50 #include "../inc/hw_memmap.h" 51 #include "../inc/hw_adc.h" 52 #include "../inc/hw_sys0.h" 71 #define ADC_CLOCK_DIVIDER_1 ADC_CTL0_SCLKDIV_DIV_BY_1 74 #define ADC_CLOCK_DIVIDER_2 ADC_CTL0_SCLKDIV_DIV_BY_2 77 #define ADC_CLOCK_DIVIDER_4 ADC_CTL0_SCLKDIV_DIV_BY_4 80 #define ADC_CLOCK_DIVIDER_8 ADC_CTL0_SCLKDIV_DIV_BY_8 83 #define ADC_CLOCK_DIVIDER_16 ADC_CTL0_SCLKDIV_DIV_BY_16 86 #define ADC_CLOCK_DIVIDER_24 ADC_CTL0_SCLKDIV_DIV_BY_24 89 #define ADC_CLOCK_DIVIDER_32 ADC_CTL0_SCLKDIV_DIV_BY_32 92 #define ADC_CLOCK_DIVIDER_48 ADC_CTL0_SCLKDIV_DIV_BY_48 95 #define ADC_RESOLUTION_12_BIT ADC_CTL2_RES_BIT_12 98 #define ADC_RESOLUTION_10_BIT ADC_CTL2_RES_BIT_10 101 #define ADC_RESOLUTION_8_BIT ADC_CTL2_RES_BIT_8 104 #define ADC_FIXED_REFERENCE_1V4 0 107 #define ADC_FIXED_REFERENCE_2V5 1 110 #define ADC_EXTERNAL_REFERENCE 2 113 #define ADC_VDDS_REFERENCE 3 117 #define ADC_POWER_DOWN_POLICY_AUTO ADC_CTL0_PWRDN_AUTO 121 #define ADC_POWER_DOWN_POLICY_MANUAL ADC_CTL0_PWRDN_MANUAL 125 #define ADC_SEQUENCE_REPEATSEQUENCE ADC_CTL1_CONSEQ_REPEATSEQUENCE 128 #define ADC_SEQUENCE_REPEATSINGLE ADC_CTL1_CONSEQ_REPEATSINGLE 132 #define ADC_SEQUENCE_SEQUENCE ADC_CTL1_CONSEQ_SEQUENCE 136 #define ADC_SEQUENCE_SINGLE ADC_CTL1_CONSEQ_SINGLE 140 #define ADC_SAMPLE_MODE_AUTO ADC_CTL1_SAMPMODE_AUTO 147 #define ADC_SAMPLE_MODE_MANUAL ADC_CTL1_SAMPMODE_MANUAL 153 #define ADC_TRIGGER_SOURCE_EVENT ADC_CTL1_TRIGSRC_EVENT 161 #define ADC_TRIGGER_SOURCE_SOFTWARE ADC_CTL1_TRIGSRC_SOFTWARE 167 #define ADC_TRIGGER_POLICY_AUTO_NEXT ADC_MEMCTL0_TRG_AUTO_NEXT 170 #define ADC_TRIGGER_POLICY_TRIGGER_NEXT ADC_MEMCTL0_TRG_TRIGGER_NEXT 173 #define ADC_INT_MEMRES_23 ADC_IMASK0_MEMRESIFG23 176 #define ADC_INT_MEMRES_22 ADC_IMASK0_MEMRESIFG22 179 #define ADC_INT_MEMRES_21 ADC_IMASK0_MEMRESIFG21 182 #define ADC_INT_MEMRES_20 ADC_IMASK0_MEMRESIFG20 185 #define ADC_INT_MEMRES_19 ADC_IMASK0_MEMRESIFG19 188 #define ADC_INT_MEMRES_18 ADC_IMASK0_MEMRESIFG18 191 #define ADC_INT_MEMRES_17 ADC_IMASK0_MEMRESIFG17 194 #define ADC_INT_MEMRES_16 ADC_IMASK0_MEMRESIFG16 197 #define ADC_INT_MEMRES_15 ADC_IMASK0_MEMRESIFG15 200 #define ADC_INT_MEMRES_14 ADC_IMASK0_MEMRESIFG14 203 #define ADC_INT_MEMRES_13 ADC_IMASK0_MEMRESIFG13 206 #define ADC_INT_MEMRES_12 ADC_IMASK0_MEMRESIFG12 209 #define ADC_INT_MEMRES_11 ADC_IMASK0_MEMRESIFG11 212 #define ADC_INT_MEMRES_10 ADC_IMASK0_MEMRESIFG10 215 #define ADC_INT_MEMRES_09 ADC_IMASK0_MEMRESIFG9 218 #define ADC_INT_MEMRES_08 ADC_IMASK0_MEMRESIFG8 221 #define ADC_INT_MEMRES_07 ADC_IMASK0_MEMRESIFG7 224 #define ADC_INT_MEMRES_06 ADC_IMASK0_MEMRESIFG6 227 #define ADC_INT_MEMRES_05 ADC_IMASK0_MEMRESIFG5 230 #define ADC_INT_MEMRES_04 ADC_IMASK0_MEMRESIFG4 233 #define ADC_INT_MEMRES_03 ADC_IMASK0_MEMRESIFG3 236 #define ADC_INT_MEMRES_02 ADC_IMASK0_MEMRESIFG2 239 #define ADC_INT_MEMRES_01 ADC_IMASK0_MEMRESIFG1 242 #define ADC_INT_MEMRES_00 ADC_IMASK0_MEMRESIFG0 245 #define ADC_INT_ASCDONE ADC_IMASK0_ASCDONE 248 #define ADC_INT_UVIFG ADC_IMASK0_UVIFG 251 #define ADC_INT_DMADONE ADC_IMASK0_DMADONE 254 #define ADC_INT_INIFG ADC_IMASK0_INIFG 257 #define ADC_INT_LOWIFG ADC_IMASK0_LOWIFG 260 #define ADC_INT_HIGHIFG ADC_IMASK0_HIGHIFG 263 #define ADC_INT_TOVIFG ADC_IMASK0_TOVIFG 266 #define ADC_INT_OVIFG ADC_IMASK0_OVIFG 351 extern void ADCSetInput(uint32_t reference, uint8_t channel, uint32_t index);
463 HWREG(ADC_BASE + ADC_O_CTL1) |= ADC_CTL1_SC_START;
480 HWREG(ADC_BASE + ADC_O_CTL1) &= ~ADC_CTL1_SC_M;
503 HWREG(ADC_BASE + ADC_O_CTL0) |= ADC_CTL0_ENC_ON;
520 HWREG(ADC_BASE + ADC_O_CTL0) &= ~ADC_CTL0_ENC_M;
536 HWREG(ADC_BASE + ADC_O_CTL2) |= ADC_CTL2_DMAEN_EN;
548 HWREG(ADC_BASE + ADC_O_CTL2) &= ~ADC_CTL2_DMAEN_M;
567 while (HWREG(ADC_BASE + ADC_O_STA) & ADC_STA_BUSY_ACTIVE) {}
570 return HWREG(ADC_BASE + ADC_O_MEMRES0 + (4 * index));
590 if (HWREG(ADC_BASE + ADC_O_STA) & ADC_STA_BUSY_ACTIVE)
615 return HWREG(ADC_BASE + ADC_O_MEMRES0 + (4 * index));
632 extern uint32_t
ADCValueToMicrovolts(uint32_t adcCode, uint32_t bitResolution, uint32_t referenceVoltageMicroVolt);
658 HWREG(ADC_BASE + ADC_O_IMASK0) |= intFlags;
685 HWREG(ADC_BASE + ADC_O_IMASK0) &= ~(intFlags);
708 return (HWREG(ADC_BASE + ADC_O_RIS0));
731 return (HWREG(ADC_BASE + ADC_O_MIS0));
775 HWREG(ADC_BASE + ADC_O_ICLR0) = intFlags;
856 #define ADCGetAdjustmentGain ADCGetAdjustmentGain_veneer 859 #define ADCSetAdjustmentOffset ADCSetAdjustmentOffset_veneer void ADCSetAdjustmentOffset(uint32_t reference)
Write correct offset value to ADC-peripheral trim register.
Definition: adc.c:440
void ADCSetTriggerSource(uint32_t triggerSource)
Set ADC trigger source.
Definition: adc.c:180
__STATIC_INLINE uint32_t ADCReadResultNonBlocking(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:612
void ADCSetSequence(uint32_t sequence)
Set conversion sequence.
Definition: adc.c:275
__STATIC_INLINE void ADCStartConversion(void)
Start conversion.
Definition: adc.h:461
uint16_t ADCGetAdjustmentGain(uint32_t reference)
Returns ADC gain value for given reference.
Definition: adc.c:385
__STATIC_INLINE uint32_t ADCReadResult(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:564
__STATIC_INLINE uint32_t ADCRawInterruptStatus(void)
Gets the current raw interrupt status.
Definition: adc.h:706
uint32_t ADCValueToMicrovolts(uint32_t adcCode, uint32_t bitResolution, uint32_t referenceVoltageMicroVolt)
Convert ADC code to microvolts.
Definition: adc.c:335
void ADCSetInput(uint32_t reference, uint8_t channel, uint32_t index)
Sets the ADC reference source and input channel.
Definition: adc.c:97
uint32_t ADCAdjustValueForGain(uint32_t adcValue, uint32_t bitResolution, uint16_t gain)
Performs ADC value gain adjustment.
Definition: adc.c:299
void ADCSetSamplingMode(uint32_t samplingMode)
Set ADC sampling mode.
Definition: adc.c:156
__STATIC_INLINE void ADCStopConversion(void)
Stop sample phase of a conversion.
Definition: adc.h:478
__STATIC_INLINE void ADCDisableDmaTrigger(void)
Disable DMA trigger for data transfer.
Definition: adc.h:546
__STATIC_INLINE void ADCEnableDmaTrigger(void)
Enable DMA trigger for data transfer.
Definition: adc.h:534
__STATIC_INLINE void ADCDisableConversion(void)
Disable conversion.
Definition: adc.h:518
void ADCSetPowerDownPolicy(uint32_t powerDownPolicy)
Set power down policy.
Definition: adc.c:251
__STATIC_INLINE void ADCClearInterrupt(uint32_t intFlags)
Clears ADC interrupt sources.
Definition: adc.h:772
__STATIC_INLINE bool ADCIsBusy(void)
Check if ADC is busy.
Definition: adc.h:587
__STATIC_INLINE void ADCDisableInterrupt(uint32_t intFlags)
Disables individual ADC interrupt sources.
Definition: adc.h:682
void ADCSetSampleDuration(uint32_t clkDiv, uint16_t clkCycles)
Sets the clock-divider value, and sample duration.
Definition: adc.c:45
__STATIC_INLINE void ADCEnableInterrupt(uint32_t intFlags)
Enables individual ADC interrupt sources.
Definition: adc.h:655
__tz_c_veneer uint16_t ADCGetAdjustmentGain_veneer(uint32_t reference)
Definition: adc_veneers.c:41
__STATIC_INLINE uint32_t ADCMaskedInterruptStatus(void)
Gets the current masked interrupt status.
Definition: adc.h:729
#define __STATIC_INLINE
Definition: cmsis_gcc.h:47
void ADCSetResolution(uint32_t resolution)
Sets the ADC bit resolution.
Definition: adc.c:73
__tz_c_veneer void ADCSetAdjustmentOffset_veneer(uint32_t reference)
Definition: adc_veneers.c:46
__STATIC_INLINE void ADCEnableConversion(void)
Enable conversion.
Definition: adc.h:501
void ADCSetMemctlRange(uint32_t start, uint32_t stop)
Set start and stop control registers.
Definition: adc.c:228
void ADCSetTriggerPolicy(uint32_t triggerPolicy, uint32_t index)
Set ADC trigger policy.
Definition: adc.c:204