Here's code performing ADC on Pin E5 on the Tiva C Series meant for struggling beginners like myself .
#include <stdbool.h>
#include <stdint.h>
#include "inc/hw_memmap.h"
#include "driverlib/adc.h"
#include "driverlib/gpio.h"
#include "driverlib/sysctl.h"
#include "driverlib/adc.h"
#include "inc/hw_types.h"
#include "driverlib/debug.h"
main(void) {
uint32_t pui32ADC0Value[1];
SysCtlClockSet(SYSCTL_SYSDIV_10 | SYSCTL_USE_PLL | SYSCTL_OSC_MAIN| SYSCTL_XTAL_16MHZ);
SysCtlPeripheralEnable(SYSCTL_PERIPH_ADC0);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
ADCReferenceSet(ADC0_BASE, ADC_REF_INT); //Set reference to the internal reference
// You can set it to 1V or 3 V
GPIOPinTypeADC(GPIO_PORTE_BASE, GPIO_PIN_5); //Configure GPIO as ADC
ADCSequenceDisable(ADC0_BASE, 3); //It is always a good practice to disable ADC prior //to usage ,else the ADC may not be accurate // due to previous initializations
ADCSequenceConfigure(ADC0_BASE, 3, ADC_TRIGGER_PROCESSOR, 0); //Use the 3rd Sample sequencer
ADCSequenceStepConfigure(ADC0_BASE, 3, 0,ADC_CTL_CH8 | ADC_CTL_IE | ADC_CTL_END);
//Configure ADC to read from channel 8 ,trigger the interrupt to end data capture //
ADCSequenceEnable(ADC0_BASE, 3); //Enable the ADC
ADCIntClear(ADC0_BASE, 3); //Clear interrupt to proceed to data capture
while (1) {
ADCProcessorTrigger(ADC0_BASE, 3); //Ask processor to trigger ADC
while (!ADCIntStatus(ADC0_BASE, 3, false))
{ //Do nothing until interrupt is triggered
}
ADCIntClear(ADC0_BASE, 3); //Clear Interrupt to proceed to next data capture
ADCSequenceDataGet(ADC0_BASE, 3, pui32ADC0Value); //pui32ADC0Value is the value read
SysCtlDelay(SysCtlClockGet() / 12);
} //Suitable delay
}
It is important to refer to datasheet before selecting the GPIO for the ADC and the channel through which it is done .
Special Thanks to cb1_mobile for the help !