64 #define ADC_SEQ (ADC_O_SSMUX0)
65 #define ADC_SEQ_STEP (ADC_O_SSMUX1 - ADC_O_SSMUX0)
66 #define ADC_SSMUX (ADC_O_SSMUX0 - ADC_O_SSMUX0)
67 #define ADC_SSEMUX (ADC_O_SSEMUX0 - ADC_O_SSMUX0)
68 #define ADC_SSCTL (ADC_O_SSCTL0 - ADC_O_SSMUX0)
69 #define ADC_SSFIFO (ADC_O_SSFIFO0 - ADC_O_SSMUX0)
70 #define ADC_SSFSTAT (ADC_O_SSFSTAT0 - ADC_O_SSMUX0)
71 #define ADC_SSOP (ADC_O_SSOP0 - ADC_O_SSMUX0)
72 #define ADC_SSDC (ADC_O_SSDC0 - ADC_O_SSMUX0)
73 #define ADC_SSTSH (ADC_O_SSTSH0 - ADC_O_SSMUX0)
149 void (*pfnHandler)(
void))
157 ASSERT(ui32SequenceNum < 4);
202 ASSERT(ui32SequenceNum < 4);
240 ASSERT(ui32SequenceNum < 4);
269 ASSERT(ui32SequenceNum < 4);
299 ADCIntStatus(uint32_t ui32Base, uint32_t ui32SequenceNum,
bool bMasked)
307 ASSERT(ui32SequenceNum < 4);
315 ui32Temp =
HWREG(ui32Base +
ADC_O_ISC) & (0x10001 << ui32SequenceNum);
320 (0x10000 | (1 << ui32SequenceNum)));
326 if(ui32Temp & 0x10000)
329 ui32Temp &= ~(0x10000 << ui32SequenceNum);
369 ASSERT(ui32SequenceNum < 4);
397 ASSERT(ui32SequenceNum < 4);
425 ASSERT(ui32SequenceNum < 4);
503 uint32_t ui32Trigger, uint32_t ui32Priority)
509 ASSERT(ui32SequenceNum < 4);
528 ui32SequenceNum *= 4;
534 ~(0xf << ui32SequenceNum)) |
535 ((ui32Trigger & 0xf) << ui32SequenceNum));
541 ~(0xf << ui32SequenceNum)) |
542 ((ui32Priority & 0x3) <<
548 ui32SequenceNum *= 2;
550 ~(0x30 << ui32SequenceNum)) |
551 ((ui32Trigger & 0x30) <<
606 uint32_t ui32Step, uint32_t ui32Config)
614 ASSERT(ui32SequenceNum < 4);
615 ASSERT(((ui32SequenceNum == 0) && (ui32Step < 8)) ||
616 ((ui32SequenceNum == 1) && (ui32Step < 4)) ||
617 ((ui32SequenceNum == 2) && (ui32Step < 4)) ||
618 ((ui32SequenceNum == 3) && (ui32Step < 1)));
634 ~(0x0000000f << ui32Step)) |
635 ((ui32Config & 0x0f) << ui32Step));
641 ~(0x0000000f << ui32Step)) |
642 (((ui32Config & 0xf00) >> 8) << ui32Step));
648 ~(0x0000000f << ui32Step)) |
649 (((ui32Config & 0xf0) >> 4) << ui32Step));
657 ~(0x0000000f << ui32Step)) |
658 (((ui32Config & 0xf00000) >> 20) << ui32Step));
663 if(ui32Config & 0x000F0000)
669 ui32Temp &= ~(0xF << ui32Step);
670 ui32Temp |= (((ui32Config & 0x00070000) >> 16) << ui32Step);
710 ASSERT(ui32SequenceNum < 4);
739 ASSERT(ui32SequenceNum < 4);
768 ASSERT(ui32SequenceNum < 4);
797 ASSERT(ui32SequenceNum < 4);
825 uint32_t *pui32Buffer)
833 ASSERT(ui32SequenceNum < 4);
890 ASSERT(ui32SequenceNum < 4);
896 (1 << (ui32SequenceNum & 0xf)));
932 ASSERT(ui32SequenceNum < 3);
933 ASSERT(((ui32Factor == 2) || (ui32Factor == 4) || (ui32Factor == 8)) &&
934 ((ui32SequenceNum == 0) || (ui32Factor != 8)));
939 for(ui32Value = 0, ui32Factor >>= 1; ui32Factor;
940 ui32Value++, ui32Factor >>= 1)
969 uint32_t ui32Step, uint32_t ui32Config)
975 ASSERT(ui32SequenceNum < 3);
976 ASSERT(((ui32SequenceNum == 0) &&
995 ui32SequenceNum; ui32SequenceNum--)
1001 ~(0x0000000f << ui32Step)) |
1002 ((ui32Config & 0x0f) << ui32Step));
1008 ~(0x0000000f << ui32Step)) |
1009 (((ui32Config & 0xf00) >> 8) <<
1016 ~(0x0000000f << ui32Step)) |
1017 (((ui32Config & 0xf0) >> 4) <<
1019 if(ui32SequenceNum != 1)
1054 uint32_t *pui32Buffer, uint32_t ui32Count)
1056 uint32_t ui32Idx, ui32Accum;
1062 ASSERT(ui32SequenceNum < 3);
1063 ASSERT(((ui32SequenceNum == 0) &&
1132 ASSERT(((ui32Factor == 0) || (ui32Factor == 2) || (ui32Factor == 4) ||
1133 (ui32Factor == 8) || (ui32Factor == 16) || (ui32Factor == 32) ||
1134 (ui32Factor == 64)));
1139 for(ui32Value = 0, ui32Factor >>= 1; ui32Factor;
1140 ui32Value++, ui32Factor >>= 1)
1223 uint32_t ui32Config)
1259 uint32_t ui32LowRef, uint32_t ui32HighRef)
1266 ASSERT((ui32LowRef < 4096) && (ui32LowRef <= ui32HighRef));
1267 ASSERT(ui32HighRef < 4096);
1311 ui32Temp |= (1 << (16 + ui32Comp));
1315 ui32Temp |= (1 << ui32Comp);
1340 ASSERT(ui32SequenceNum < 4);
1345 HWREG(ui32Base +
ADC_O_IM) &= ~(0x10000 << ui32SequenceNum);
1367 ASSERT(ui32SequenceNum < 4);
1778 ASSERT(ui32SequenceNum < 4);
1805 ASSERT(ui32SequenceNum < 4);
1917 uint32_t ui32ClockDiv)
1980 uint32_t ui32Config;
void ADCReferenceSet(uint32_t ui32Base, uint32_t ui32Ref)
void ADCSequenceUnderflowClear(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCComparatorIntDisable(uint32_t ui32Base, uint32_t ui32SequenceNum)
#define INT_ADC0SS0_TM4C123
void ADCIntRegister(uint32_t ui32Base, uint32_t ui32SequenceNum, void(*pfnHandler)(void))
void ADCIntClearEx(uint32_t ui32Base, uint32_t ui32IntFlags)
uint32_t ADCClockConfigGet(uint32_t ui32Base, uint32_t *pui32ClockDiv)
uint32_t ADCReferenceGet(uint32_t ui32Base)
void ADCComparatorConfigure(uint32_t ui32Base, uint32_t ui32Comp, uint32_t ui32Config)
bool ADCBusy(uint32_t ui32Base)
void ADCSequenceDMADisable(uint32_t ui32Base, uint32_t ui32SequenceNum)
int32_t ADCSequenceUnderflow(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCSequenceDMAEnable(uint32_t ui32Base, uint32_t ui32SequenceNum)
uint32_t ADCIntStatus(uint32_t ui32Base, uint32_t ui32SequenceNum, bool bMasked)
void ADCIntEnable(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCSequenceOverflowClear(uint32_t ui32Base, uint32_t ui32SequenceNum)
#define INT_ADC1SS0_TM4C129
uint32_t ADCIntStatusEx(uint32_t ui32Base, bool bMasked)
void ADCIntDisable(uint32_t ui32Base, uint32_t ui32SequenceNum)
#define ADC_TRIGGER_PWM_MOD1
#define ADC_CLOCK_RATE_FULL
static uint_fast8_t _ADCIntNumberGet(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCHardwareOversampleConfigure(uint32_t ui32Base, uint32_t ui32Factor)
#define ADC_TRIGGER_COMP1
void ADCSoftwareOversampleDataGet(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t *pui32Buffer, uint32_t ui32Count)
void ADCSoftwareOversampleConfigure(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t ui32Factor)
int32_t ADCSequenceOverflow(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCComparatorReset(uint32_t ui32Base, uint32_t ui32Comp, bool bTrigger, bool bInterrupt)
int32_t ADCSequenceDataGet(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t *pui32Buffer)
#define ADC_TRIGGER_PROCESSOR
void ADCComparatorIntClear(uint32_t ui32Base, uint32_t ui32Status)
#define ADC_TRIGGER_COMP2
#define ADC_TRIGGER_COMP0
#define INT_ADC0SS0_TM4C129
void ADCSoftwareOversampleStepConfigure(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t ui32Step, uint32_t ui32Config)
void ADCIntDisableEx(uint32_t ui32Base, uint32_t ui32IntFlags)
void ADCIntClear(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCClockConfigSet(uint32_t ui32Base, uint32_t ui32Config, uint32_t ui32ClockDiv)
void ADCSequenceEnable(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCSequenceDisable(uint32_t ui32Base, uint32_t ui32SequenceNum)
uint32_t ADCComparatorIntStatus(uint32_t ui32Base)
#define ADC_TRIGGER_TIMER
void IntUnregister(uint32_t ui32Interrupt)
void ADCSequenceConfigure(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t ui32Trigger, uint32_t ui32Priority)
#define ADC_TRIGGER_ALWAYS
static uint8_t g_pui8OversampleFactor[3]
#define ADC_SSFSTAT0_EMPTY
uint32_t ADCPhaseDelayGet(uint32_t ui32Base)
void ADCSequenceStepConfigure(uint32_t ui32Base, uint32_t ui32SequenceNum, uint32_t ui32Step, uint32_t ui32Config)
void ADCPhaseDelaySet(uint32_t ui32Base, uint32_t ui32Phase)
void ADCProcessorTrigger(uint32_t ui32Base, uint32_t ui32SequenceNum)
void ADCComparatorIntEnable(uint32_t ui32Base, uint32_t ui32SequenceNum)
#define ADC_TRIGGER_PWM_MOD0
#define ADC_TRIGGER_EXTERNAL
void ADCComparatorRegionSet(uint32_t ui32Base, uint32_t ui32Comp, uint32_t ui32LowRef, uint32_t ui32HighRef)
void ADCIntEnableEx(uint32_t ui32Base, uint32_t ui32IntFlags)
void IntDisable(uint32_t ui32Interrupt)
void ADCIntUnregister(uint32_t ui32Base, uint32_t ui32SequenceNum)
void IntRegister(uint32_t ui32Interrupt, void(*pfnHandler)(void))
void IntEnable(uint32_t ui32Interrupt)