49 #include "../inc/hw_adc.h" 50 #include "../inc/hw_memmap.h" 51 #include "../inc/hw_types.h" 70 #define ADC_CLOCK_DIVIDER_1 ADC_CTL0_SCLKDIV_DIV_BY_1 73 #define ADC_CLOCK_DIVIDER_2 ADC_CTL0_SCLKDIV_DIV_BY_2 76 #define ADC_CLOCK_DIVIDER_4 ADC_CTL0_SCLKDIV_DIV_BY_4 79 #define ADC_CLOCK_DIVIDER_8 ADC_CTL0_SCLKDIV_DIV_BY_8 82 #define ADC_CLOCK_DIVIDER_16 ADC_CTL0_SCLKDIV_DIV_BY_16 85 #define ADC_CLOCK_DIVIDER_24 ADC_CTL0_SCLKDIV_DIV_BY_24 88 #define ADC_CLOCK_DIVIDER_32 ADC_CTL0_SCLKDIV_DIV_BY_32 91 #define ADC_CLOCK_DIVIDER_48 ADC_CTL0_SCLKDIV_DIV_BY_48 94 #define ADC_MODE_SINGLE (0 << ADC_MEMCTL_0_MOD_S) 97 #define ADC_MODE_DIFFERENTIAL (1 << ADC_MEMCTL_0_MOD_S) 100 #define ADC_INTERNAL_REFERENCE 0 104 #define ADC_EXTERNAL_REFERENCE 1 107 #define ADC_VDDA_REFERENCE 2 110 #define ADC_FULL_SCALE_RANGE_0V0_3V3 0 113 #define ADC_FULL_SCALE_RANGE_0V1_3V3 1 116 #define ADC_FULL_SCALE_RANGE_0V0_3V2 2 119 #define ADC_FULL_SCALE_RANGE_0V0_1V8 3 123 #define ADC_POWER_DOWN_POLICY_AUTO ADC_CTL0_PWRDN_AUTO 127 #define ADC_POWER_DOWN_POLICY_MANUAL ADC_CTL0_PWRDN_MANUAL 131 #define ADC_SEQUENCE_REPEATSEQUENCE ADC_CTL1_CONSEQ_REPEATSEQUENCE 135 #define ADC_SEQUENCE_REPEATSINGLE ADC_CTL1_CONSEQ_REPEATSINGLE 139 #define ADC_SEQUENCE_SEQUENCE ADC_CTL1_CONSEQ_SEQUENCE 143 #define ADC_SEQUENCE_SINGLE ADC_CTL1_CONSEQ_SINGLE 147 #define ADC_SAMPLE_MODE_AUTO ADC_CTL1_SAMPMODE_AUTO 154 #define ADC_SAMPLE_MODE_MANUAL ADC_CTL1_SAMPMODE_MANUAL 160 #define ADC_TRIGGER_SOURCE_EVENT ADC_CTL1_TRIGSRC_EVENT 168 #define ADC_TRIGGER_SOURCE_SOFTWARE ADC_CTL1_TRIGSRC_SOFTWARE 174 #define ADC_TRIGGER_POLICY_AUTO_NEXT ADC_MEMCTL_0_TRIG_AUTO_NEXT 177 #define ADC_TRIGGER_POLICY_TRIGGER_NEXT ADC_MEMCTL_0_TRIG_TRIGGER_NEXT 180 #define ADC_INT_MEMRES_15 ADC_INTEVT0BM_MEMRESIFG15 183 #define ADC_INT_MEMRES_14 ADC_INTEVT0BM_MEMRESIFG14 186 #define ADC_INT_MEMRES_13 ADC_INTEVT0BM_MEMRESIFG13 189 #define ADC_INT_MEMRES_12 ADC_INTEVT0BM_MEMRESIFG12 192 #define ADC_INT_MEMRES_11 ADC_INTEVT0BM_MEMRESIFG11 195 #define ADC_INT_MEMRES_10 ADC_INTEVT0BM_MEMRESIFG10 198 #define ADC_INT_MEMRES_09 ADC_INTEVT0BM_MEMRESIFG9 201 #define ADC_INT_MEMRES_08 ADC_INTEVT0BM_MEMRESIFG8 204 #define ADC_INT_MEMRES_07 ADC_INTEVT0BM_MEMRESIFG7 207 #define ADC_INT_MEMRES_06 ADC_INTEVT0BM_MEMRESIFG6 210 #define ADC_INT_MEMRES_05 ADC_INTEVT0BM_MEMRESIFG5 213 #define ADC_INT_MEMRES_04 ADC_INTEVT0BM_MEMRESIFG4 216 #define ADC_INT_MEMRES_03 ADC_INTEVT0BM_MEMRESIFG3 219 #define ADC_INT_MEMRES_02 ADC_INTEVT0BM_MEMRESIFG2 222 #define ADC_INT_MEMRES_01 ADC_INTEVT0BM_MEMRESIFG1 225 #define ADC_INT_MEMRES_00 ADC_INTEVT0BM_MEMRESIFG0 228 #define ADC_INT_UVIFG ADC_INTEVT0BM_UVIFG 231 #define ADC_INT_DMADONE ADC_INTEVT0BM_DMADONE 234 #define ADC_INT_INIFG ADC_INTEVT0BM_INIFG 237 #define ADC_INT_LOWIFG ADC_INTEVT0BM_LOFG 240 #define ADC_INT_HIGHIFG ADC_INTEVT0BM_HIFG 243 #define ADC_INT_TOVIFG ADC_INTEVT0BM_TOVIFG 246 #define ADC_INT_OVIFG ADC_INTEVT0BM_OVIFG 249 #define ADC_INT_ALL \ 250 (ADC_INT_OVIFG | ADC_INT_TOVIFG | ADC_INT_HIGHIFG | ADC_INT_LOWIFG | ADC_INT_INIFG | ADC_INT_DMADONE | \ 251 ADC_INT_UVIFG | ADC_INT_MEMRES_00 | ADC_INT_MEMRES_01 | ADC_INT_MEMRES_02 | ADC_INT_MEMRES_03 | \ 252 ADC_INT_MEMRES_04 | ADC_INT_MEMRES_05 | ADC_INT_MEMRES_06 | ADC_INT_MEMRES_07 | ADC_INT_MEMRES_08 | \ 253 ADC_INT_MEMRES_09 | ADC_INT_MEMRES_10 | ADC_INT_MEMRES_11 | ADC_INT_MEMRES_12 | ADC_INT_MEMRES_13 | \ 254 ADC_INT_MEMRES_14 | ADC_INT_MEMRES_15) 263 #define ADC_SAMPLE_CLK_NONE 0 264 #define ADC_SAMPLE_CLK_SOC_CLK 1 266 #define ADC_SAMPLE_CLK_HFXT 2 268 #define ADC_SAMPLE_CLK_SOC_PLL_CLK_DIV 3 342 extern void ADCSetInput(uint32_t reference, uint8_t channel, uint8_t fullScaleRange, uint32_t index);
#define ADC_O_INTEVT0RIS
Definition: hw_adc.h:69
void ADCSetTriggerSource(uint32_t triggerSource)
Set ADC trigger source.
Definition: adc.c:183
__STATIC_INLINE uint32_t ADCReadResultNonBlocking(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:623
void ADCSetSequence(uint32_t sequence)
Set conversion sequence.
Definition: adc.c:301
__STATIC_INLINE void ADCStartConversion(void)
Start conversion.
Definition: adc.h:469
uint32_t ADCValueToMicrovolts(uint32_t adcCode, uint32_t fullScaleRange)
Convert ADC code to microvolts.
Definition: adc.c:325
__STATIC_INLINE uint32_t ADCReadResult(uint32_t index)
Read conversion result from ADC.
Definition: adc.h:574
#define HWREG(x)
Definition: hw_types.h:78
#define ADC_CTL1_SC_M
Definition: hw_adc.h:5311
#define ADC_O_INTEVT0MIS
Definition: hw_adc.h:72
#define __STATIC_INLINE
Definition: hw_types.h:57
__STATIC_INLINE uint32_t ADCRawInterruptStatus(void)
Gets the current raw interrupt status.
Definition: adc.h:719
#define ADC_O_STA
Definition: hw_adc.h:225
void ADCSetSamplingMode(uint32_t samplingMode)
Set ADC sampling mode.
Definition: adc.c:159
void ADCSetSamplingClk(uint32_t clkSrc)
Set sampling clock source.
Definition: adc.c:278
#define ADC_O_INTEVT0BM
Definition: hw_adc.h:66
__STATIC_INLINE void ADCStopConversion(void)
Stop sample phase of a conversion.
Definition: adc.h:486
__STATIC_INLINE void ADCDisableDmaTrigger(void)
Disable DMA trigger for data transfer.
Definition: adc.h:556
#define ADC_CTL2_DMAEN_ENABLE
Definition: hw_adc.h:5468
__STATIC_INLINE void ADCEnableDmaTrigger(void)
Enable DMA trigger for data transfer.
Definition: adc.h:544
__STATIC_INLINE void ADCDisableConversion(void)
Disable conversion.
Definition: adc.h:528
void ADCSetPowerDownPolicy(uint32_t powerDownPolicy)
Set power down policy.
Definition: adc.c:254
__STATIC_INLINE void ADCClearInterrupt(uint32_t intFlags)
Clears ADC interrupt sources.
Definition: adc.h:786
__STATIC_INLINE bool ADCIsBusy(void)
Check if ADC is busy.
Definition: adc.h:597
__STATIC_INLINE void ADCDisableInterrupt(uint32_t intFlags)
Disables individual ADC interrupt sources.
Definition: adc.h:696
void ADCSetSampleDuration(uint32_t clkDiv, uint16_t clkCycles)
Sets the clock-divider value, and sample duration.
Definition: adc.c:53
#define ADC_O_MEMRES_0
Definition: hw_adc.h:177
__STATIC_INLINE void ADCEnableInterrupt(uint32_t intFlags)
Enables individual ADC interrupt sources.
Definition: adc.h:670
#define ADC_O_CTL0
Definition: hw_adc.h:123
#define ADC_O_INTEVT0CLR
Definition: hw_adc.h:78
#define ADC_STA_BUSY_ACTIVE
Definition: hw_adc.h:7777
void ADCSetInput(uint32_t reference, uint8_t channel, uint8_t fullScaleRange, uint32_t index)
Sets the ADC reference source and input channel.
Definition: adc.c:81
__STATIC_INLINE uint32_t ADCMaskedInterruptStatus(void)
Gets the current masked interrupt status.
Definition: adc.h:741
#define ADC_O_CTL2
Definition: hw_adc.h:129
void ADCRestoreTrims(void)
Restore trim values.
Definition: adc.c:385
#define ADC_CTL0_ENC_M
Definition: hw_adc.h:5215
#define ADC_CTL2_DMAEN_M
Definition: hw_adc.h:5465
#define ADC_CTL0_ENC_ON
Definition: hw_adc.h:5218
__STATIC_INLINE void ADCEnableConversion(void)
Enable conversion.
Definition: adc.h:511
void ADCSetMemctlRange(uint32_t start, uint32_t stop)
Set start and stop control registers.
Definition: adc.c:231
void ADCSetTriggerPolicy(uint32_t triggerPolicy, uint32_t index)
Set ADC trigger policy.
Definition: adc.c:207
void ADCStoreTrims(void)
Store trim values.
Definition: adc.c:375
#define ADC_O_CTL1
Definition: hw_adc.h:126
#define ADC_BASE
Definition: hw_memmap.h:100
#define ADC_CTL1_SC_START
Definition: hw_adc.h:5313