Hello Sir,
I have written the following code for ADC0 initialisation using sample sequencer 3 where the input has been taken from PE3.
I have used interrupt to check if there is data in sample sequencer fifo ...and then extract the data....Please check and let me know if I have done anytn wrong
#include<stdint.h>
#include<stdbool.h>
#include<tm4c123gh6pm.h>
#include<adc.h>
#include<interrupt.h>
#define ADCIM (*((unsigned long *) 0x40038008))
void init_module(void);
void init_sam_seq(void);
int main(void) {
init_module();
init_sam_seq();
return 0;
}
void init_module(void)
{
SYSCTL_RCGCADC_R=SYSCTL_RCGCADC_R0; // Enable clock for ADC 0
SYSCTL_RCGCGPIO_R=SYSCTL_RCGCGPIO_R4;//Enable clock for Port E PE3
GPIO_PORTE_AFSEL_R=0x08;
GPIO_PORTE_DEN_R&=~0x08;
GPIO_PORTE_AMSEL_R=0x00000008;
}
void init_sam_seq(void)
{
ADC0_ACTSS_R&=0x11111117;
ADC0_EMUX_R&=ADC_EMUX_EM3_PROCESSOR;
ADC0_SSMUX3_R=0x00000000;
ADC0_SSCTL3_R=0x00000004;
ADCIM=0x00000008;
//IntEnable(ADC_INT_SS3);
ADCIntEnable(0x40038000,ADC_INT_SS3);
IntMasterEnable();
ADC0_ACTSS_R=ADC_ACTSS_ASEN3;
}
void ADC0IntHandler(void)
{uint32_t adc_data;
ADCIntClear(0x40038000,ADC_INT_SS3);
while(!ADCIntStatus(0x40038000, 0, true))
{
}
adc_data=ADC0_SSFIFO3_R&ADC_SSFIFO3_DATA_M;
}
Regards,
Vikram