ADC example, different port

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

ADC example, different port

685 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Analog2Can on Tue May 06 08:16:08 MST 2014
Hello,

I'm playing around with the examples of the LPC11C24. I wanted to read all 8 ADC Ports. How do I do that? I just changed the ADC_CH0 to ADC_CH1 and its not working. Do I have to define or change something to also read the other ports?

/*
 * @brief LPC11xx ADC example
 *
 * @note
 * Copyright(C) NXP Semiconductors, 2012
 * All rights reserved.
 *
 * @par
 * Software that is described herein is for illustrative purposes only
 * which provides customers with programming information regarding the
 * LPC products.  This software is supplied "AS IS" without any warranties of
 * any kind, and NXP Semiconductors and its licensor disclaim any and
 * all warranties, express or implied, including all implied warranties of
 * merchantability, fitness for a particular purpose and non-infringement of
 * intellectual property rights.  NXP Semiconductors assumes no responsibility
 * or liability for the use of the software, conveys no license or rights under any
 * patent, copyright, mask work right, or any other intellectual property rights in
 * or to any products. NXP Semiconductors reserves the right to make changes
 * in the software without notification. NXP Semiconductors also makes no
 * representation or warranty that such application will be suitable for the
 * specified use without further testing or modification.
 *
 * @par
 * Permission to use, copy, modify, and distribute this software and its
 * documentation is hereby granted, under NXP Semiconductors' and its
 * licensor's relevant copyrights in the software, without fee, provided that it
 * is used in conjunction with NXP Semiconductors microcontrollers.  This
 * copyright, permission, and disclaimer notice must appear in all copies of
 * this code.
 */

#include "board.h"
#include <stdio.h>

#if !defined(CHIP_LPC1125)

/*****************************************************************************
 * Private types/enumerations/variables
 ****************************************************************************/

static ADC_CLOCK_SETUP_T ADCSetup;

/*****************************************************************************
 * Public types/enumerations/variables
 ****************************************************************************/

/*****************************************************************************
 * Private functions
 ****************************************************************************/

static void Init_ADC_PinMux(void)
{
#if (defined(BOARD_NXP_XPRESSO_11U14) || defined(BOARD_NGX_BLUEBOARD_11U24))
Chip_IOCON_PinMuxSet(LPC_IOCON, 0, 11, FUNC2);
#elif defined(BOARD_NXP_XPRESSO_11C24)
Chip_IOCON_PinMuxSet(LPC_IOCON, IOCON_PIO0_11, FUNC2);
#else
#error "Pin muxing for ADC not configured"
#endif
}

/*****************************************************************************
 * Public functions
 ****************************************************************************/

/**
 * @briefmain routine for ADC example
 * @returnFunction should not exit
 */
int main(void)
{
uint16_t dataADC;
int j;

SystemCoreClockUpdate();
Board_Init();
Init_ADC_PinMux();

/* ADC Init */
Chip_ADC_Init(LPC_ADC, &ADCSetup);
Chip_ADC_EnableChannel(LPC_ADC, ADC_CH1, ENABLE);

while (1) {

/* Start A/D conversion */
Chip_ADC_SetStartMode(LPC_ADC, ADC_START_NOW, ADC_TRIGGERMODE_RISING);

/* Waiting for A/D conversion complete */
while (Chip_ADC_ReadStatus(LPC_ADC, ADC_CH1, ADC_DR_DONE_STAT) != SET) {}

/* Read ADC value */
Chip_ADC_ReadValue(LPC_ADC, ADC_CH1, &dataADC);

/* Print ADC value */
DEBUGOUT("ADC value port 1 is 0x%x \r\n  ", dataADC);


/* Delay */
j = 5000000;
while (j--) {}
}

/* Should not run to here */
return 0;
}

#endif /* !defined(CHIP_LPC1125) */
Labels (1)
0 Kudos
4 Replies

608 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Analog2Can on Tue May 06 12:28:04 MST 2014
Thank you very much.
0 Kudos

608 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by R2D2 on Tue May 06 10:10:13 MST 2014

Quote: Analog2Can
I expected it would be a basic thing I did wrong.



It is...


Quote: Analog2Can
I never worked with a NXP microcontroller before.



It is useful to read the User Manual:

http://www.nxp.com/documents/user_manual/UM10398.pdf



Quote: Analog2Can
How do I change the ADC1 pin to AD?



There are several ways to change pin functions...

Just in front of you:

Chip_IOCON_PinMuxSet(LPC_IOCON, IOCON_PIO0_11, FUNC2);


0 Kudos

608 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by Analog2Can on Tue May 06 09:45:41 MST 2014
I'm sorry. I expected it would be a basic thing I did wrong. I never worked with a NXP microcontroller before.
How do I change the ADC1 pin to AD?

As a result of the Code I get :

  
  ADC value 1 is 0x0 

  ADC value 1 is 0x0 

  ADC value 1 is 0x0 

  ADC value 1 is 0x0 

  ADC value 1 is 0x0 
0 Kudos

608 Views
lpcware
NXP Employee
NXP Employee
Content originally posted in LPCWare by R2D2 on Tue May 06 08:56:46 MST 2014

Quote: Analog2Can
and its not working. Do I have to define or change something to also read the other ports?

Could be useful if you desrcibe what's  not working...


Quote: Analog2Can
Do I have to define or change something to also read the other ports?



Perhaps you getter a better result after switchting ADC1 pin to AD function?
0 Kudos