This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

LAUNCHXL-CC1350: LAUNCHXL-CC1350 ADC reading problem

Part Number: LAUNCHXL-CC1350
Other Parts Discussed in Thread: CC1350

Hello,

I am developing a program using ti driverlib for CC1350 Launch without OS to read ADC samples from AUXIO07 (DIO 23). When I execute my program, it get stuck while trying to read the ADC buffer. Below is the program I used. Can you please let me know what is wrong or if there is something missing?
Note: I tried the UART without the ADC reading part and it worked fine.

#include <stdlib.h>
#include "driverlib/gpio.h"
#include "driverlib/ioc.h"
#include "driverlib/uart.h"
#include "driverlib/prcm.h"
#include "driverlib/timer.h"
#include "driverlib/sys_ctrl.h"
#include "inc/hw_memmap.h"
#include "inc/hw_aux_aiodio.h"
#include "inc/hw_ints.h"
#include "driverlib/osc.h"
#include "driverlib/aon_batmon.h"
#include "driverlib/aux_adc.h"
#include "inc/hw_aux_wuc.h"

void led_setup(void)
{
PRCMPowerDomainOn(PRCM_DOMAIN_PERIPH);
while(PRCMPowerDomainStatus(PRCM_DOMAIN_PERIPH) != PRCM_DOMAIN_POWER_ON);

PRCMPeripheralRunEnable(PRCM_PERIPH_GPIO);
PRCMLoadSet();
while ( !PRCMLoadGet() );

GPIO_setOutputEnableDio(IOID_7, GPIO_OUTPUT_ENABLE);
}

void ADC_setup()
{

AUXWUCClockEnable(AUX_WUC_ADI_CLOCK | AUX_WUC_OSCCTRL_CLOCK | AUX_WUC_ADC_CLOCK);//
while(AUXWUCClockStatus(AUX_WUC_ADC_CLOCK)==AUX_WUC_CLOCK_OFF);

IOCPinTypeAux(IOID_23);

AUXADCSelectInput(ADC_COMPB_IN_AUXIO7);
HWREGH((AUX_AIODIO0_BASE + AUX_AIODIO_O_IOMODE + 0x00000002)) = 0x4000;

HWREGB(AUX_AIODIO0_BASE + AUX_AIODIO_O_GPIODIE+0x00000003) = 0x00;
AUXADCEnableSync(AUXADC_REF_FIXED,AUXADC_SAMPLE_TIME_1P37_MS,AUXADC_TRIGGER_MANUAL);

}

//
void UART_send_setup()
{
PRCMPowerDomainOn(PRCM_DOMAIN_SERIAL); // UART 0
while(PRCMPowerDomainStatus(PRCM_DOMAIN_SERIAL) != PRCM_DOMAIN_POWER_ON);

PRCMPowerDomainOn(PRCM_DOMAIN_PERIPH);
while(PRCMPowerDomainStatus(PRCM_DOMAIN_PERIPH) != PRCM_DOMAIN_POWER_ON);

PRCMPeripheralRunEnable(PRCM_PERIPH_UART0);
PRCMLoadSet();
while ( !PRCMLoadGet() );

IOCPinTypeUart(UART0_BASE , IOID_2, IOID_3, IOID_19, IOID_18);

UARTDisable(UART0_BASE);

UARTConfigSetExpClk(UART0_BASE,48000000,115200, UART_CONFIG_WLEN_8|UART_CONFIG_STOP_ONE|UART_CONFIG_PAR_NONE);

UARTHwFlowControlDisable(UART0_BASE);

UARTEnable(UART0_BASE);

}

void function(void)
{
AUXADCGenManualTrigger();

while(AUXADCGetFifoStatus()==AUXADC_FIFO_EMPTY_M);
GPIO_toggleDio(IOID_7);
uint32_t voltage = AUXADCPopFifo();

for(int i = 1000; i >= 1; i = i /10)
{
int v3 = (voltage/i);
char ch2 = v3 + '0';
UARTCharPut(UART0_BASE,ch2);
voltage = voltage - v3*i;
}

UARTCharPut(UART0_BASE,' ');
UARTCharPut(UART0_BASE,'V');
UARTCharPut(UART0_BASE,'\n');

}

int main(void)
{

led_setup();
UART_send_setup();
ADC_setup();
CPUdelay(16000000);
function();
while(1);
return 0;
}