<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPCXpresso IDEのトピックRe: LPC1769 ADC code</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559233#M15364</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ex-kayoda on Thu Mar 14 09:18:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, blame the chip :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fortunately there are guys here with coding strength ;)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 23:38:07 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T23:38:07Z</dc:date>
    <item>
      <title>LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559227#M15358</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by cynicalsy on Thu Mar 14 02:08:18 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi, I am currently trying to implement ADC using LPC1769.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I need to use 2 different channels (0 &amp;amp; 2) as I have two separate analog input signals.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I only used one channel, it was working perfectly. So I basically copied the previously-working code and changed the channel number to 2 as following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;static void init_ADC_PINS1(void)
{
PINSEL_CFG_Type PinCfg;

PinCfg.Funcnum = 1;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 2;
PinCfg.Portnum = 0;
PinCfg.Pinnum = 23;
PINSEL_ConfigPin(&amp;amp;PinCfg);
}

static void init_ADC_PINS2(void)
{
PINSEL_CFG_Type PinCfg;

PinCfg.Funcnum = 1;
PinCfg.OpenDrain = 0;
PinCfg.Pinmode = 2;
PinCfg.Portnum = 0;
PinCfg.Pinnum = 25;
PINSEL_ConfigPin(&amp;amp;PinCfg);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;int ADC_Val1, ADC_Val2;
double v1,v2;

init_ADC_PINS1();
init_ADC_PINS2();

ADC_Init(LPC_ADC, 10000);
LPC_ADC-&amp;gt;ADGDR &amp;amp;= ~(1&amp;lt;&amp;lt;31);

ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_0, ENABLE);
ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_2, ENABLE);

while(1)
{
ADC_StartCmd(LPC_ADC, ADC_START_NOW);

while (!(ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_0,ADC_DATA_DONE)));
ADC_Val1 = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_0);
v1 = (3.15/4096)*ADC_Val1;
printf("FSR voltage is %.2lf\n", v1);

while (!(ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_2,ADC_DATA_DONE)));

//##########&amp;nbsp; STUCK&amp;nbsp; ############

ADC_Val2 = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_2);
v2 = (3.15/4096)*ADC_Val2;
printf("IR voltage is %.2lf\n", v2);

Timer0_Wait(2000);

}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Measurements + ADC need to happen continuously (hence infinite loop). However, after 1st iteration (yes, it successfully goes through the loop for the first time), the system gets stuck in the infinite loop of the 2nd channel (CHANNEL_2). It seems that the system has no problem getting through the 1st channel (CHANNEL_0), but get stuck in the 2nd channel.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Does anyone know how to solve this problem&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;OR &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;can think of better/more efficient ways to implement this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please note that I am relatively new in LPCxpresso &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks in advance&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:03 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559227#M15358</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:03Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559228#M15359</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Thu Mar 14 03:03:43 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;:confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How do you start ADC conversion = what is ADC_StartCmd(LPC_ADC, ADC_START_NOW)&amp;nbsp; :confused::confused:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559228#M15359</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:04Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559229#M15360</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by cynicalsy on Thu Mar 14 03:41:14 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hi zero,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have used the functions from the LPC17xx library.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
/*********************************************************************//**
* @brief Set start mode for ADC
* @param[in]ADCx pointer to LPC_ADC_TypeDef
* @param[in]start_mode Start mode choose one of modes in
* 'ADC_START_OPT' enumeration type definition
* @return None
*********************************************************************/
void ADC_StartCmd(LPC_ADC_TypeDef *ADCx, uint8_t start_mode)
{
CHECK_PARAM(PARAM_ADCx(ADCx));
CHECK_PARAM(PARAM_ADC_START_OPT(start_mode));

ADCx-&amp;gt;ADCR &amp;amp;= ~ADC_CR_START_MASK;
ADCx-&amp;gt;ADCR |=ADC_CR_START_MODE_SEL((uint32_t)start_mode);
}

&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;by setting the parameter for "start_mode" to be ADC_START_NOW, the ADC conversion takes place continuously regardless of edges or clocks.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:05 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559229#M15360</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:05Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559230#M15361</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Thu Mar 14 05:41:04 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: cynicalsy&lt;/STRONG&gt;&lt;BR /&gt;...the ADC conversion takes place continuously regardless of edges or clocks.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; :confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Did you try Burst mode already?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
//ADC_StartCmd(LPC_ADC, ADC_START_NOW);
ADC_BurstCmd(LPC_ADC,ENABLE);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559230#M15361</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:06Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559231#M15362</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Ex-Zero on Thu Mar 14 06:36:03 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Your problem is that you are not allowed to set 2 channels if you are not in burst mode :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;[COLOR=Red]ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_0, ENABLE);
ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_2, ENABLE);[/COLOR]
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;SPAN&gt;If you set single channels and start a conversion, it's working also &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;UM10360 Table 531: A/D Control Register (AD0CR - address 0x4003 4000) bit description:&lt;/SPAN&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;7:0 SEL Selects which of the AD0.7:0 pins is (are) to be sampled and converted. For AD0, bit 0 selects Pin AD0.0, and bit 7 selects pin AD0.7. In software-controlled mode, [B][COLOR=Red]only one of these bits should be 1[/COLOR][/B]. In hardware scan mode, any value containing 1 to 8 ones is allowed. All zeroes is equivalent to 0x01.&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
[COLOR=Red]LPC_ADC-&amp;gt;ADCR &amp;amp;= ~0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset channel
ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_0, ENABLE);
ADC_StartCmd(LPC_ADC, ADC_START_NOW);[/COLOR]
//ADC_BurstCmd(LPC_ADC,ENABLE);
while (!(ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_0,ADC_DATA_DONE)));
ADC_Val1 = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_0);
v1 = (3.15/4096)*ADC_Val1;
printf("ADC0: %.2lf\n", v1);
[COLOR=Red]LPC_ADC-&amp;gt;ADCR &amp;amp;= ~0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset channel
ADC_ChannelCmd (LPC_ADC, ADC_CHANNEL_2, ENABLE);
ADC_StartCmd(LPC_ADC, ADC_START_NOW);[/COLOR]
while (!(ADC_ChannelGetStatus(LPC_ADC,ADC_CHANNEL_2,ADC_DATA_DONE )));
ADC_Val2 = ADC_ChannelGetData(LPC_ADC,ADC_CHANNEL_2);
v2 = (3.15/4096)*ADC_Val2;
printf("ADC2: %.2lf\n", v2);
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559231#M15362</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:06Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559232#M15363</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by frame on Thu Mar 14 08:58:29 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Sorry, but:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Every time I deal with ADC-related topic on a LPC1xxx for some project,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I switch over to a STM32 based device shortly afterwards.:(&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It is definitely not a strength of LPC's ...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559232#M15363</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:07Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559233#M15364</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by ex-kayoda on Thu Mar 14 09:18:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, blame the chip :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Fortunately there are guys here with coding strength ;)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559233#M15364</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:07Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 ADC code</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559234#M15365</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by frame on Thu Mar 14 09:36:26 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;Yes, blame the chip :)&lt;BR /&gt;Fortunately there are guys here with coding strength ;)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The STM32 ADC is more complex, and more capable.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Just the right thing for a guy with coding weakness ...;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I only miss individual result registers.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 23:38:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-ADC-code/m-p/559234#M15365</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T23:38:08Z</dc:date>
    </item>
  </channel>
</rss>

