<?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>LPC Microcontrollers中的主题 Timer16_0 and ADC in burst mode</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542084#M12418</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vdelabouere on Tue Dec 17 18:17:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using Timer16_0 to generate a 1ms interrupt to do some tasks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I want to use the ADC in burst mode for the first 4 ADC channels.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the ADC_Init function :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ADCInit( uint32_t ADC_Clk )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* Disable Power down bit to the ADC block. */&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~(0x1&amp;lt;&amp;lt;4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* Enable AHB clock to the ADC. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1&amp;lt;&amp;lt;13);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for ( i = 0; i &amp;lt; 4; i++ )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ADCValue&lt;/SPAN&gt;&lt;I&gt; = 0x0;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;// IO configuration&lt;BR /&gt;LPC_IOCON-&amp;gt;TDI_PIO0_11 &amp;amp;= ~0x9F; /*&amp;nbsp; ADC I/O config */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDI_PIO0_11 |= 0x02;&amp;nbsp; /* ADC IN0 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TMS_PIO0_12 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TMS_PIO0_12 |= 0x02;&amp;nbsp; /* ADC IN1 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDO_PIO0_13 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDO_PIO0_13 |= 0x02;&amp;nbsp; /* ADC IN2 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TRST_PIO0_14 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TRST_PIO0_14 |= 0x02;&amp;nbsp; /* ADC IN3 */&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR = ( 0x01 &amp;lt;&amp;lt; 0 ) |&amp;nbsp; /* SEL=1,select channel 0~7 on ADC0 */&lt;BR /&gt;( ( SystemCoreClock / ADC_Clk - 1 ) &amp;lt;&amp;lt; 8 ) |&amp;nbsp; /* CLKDIV = Fpclk / 1000000 - 1 */ &lt;BR /&gt;( 0 &amp;lt;&amp;lt; 16 ) | /* BURST = 0, no BURST, software controlled */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 17 ) |&amp;nbsp; /* CLKS = 0, 11 clocks/10 bits */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 24 ) |&amp;nbsp; /* START = 0 A/D conversion stops */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 27 );/* EDGE = 0 (CAP/MAT singal falling,trigger A/D conversion) */ &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; // Enable the ADC ISR&lt;BR /&gt;&amp;nbsp; NVIC_EnableIRQ(ADC_IRQn);&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;INTEN = 0x0F;/* Enable interrupts for the first 4 ADC Channels */&lt;BR /&gt;&amp;nbsp; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;When I want to start the burst mode, I call this function :&lt;BR /&gt;void ADCBurstStart( void )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; if ( LPC_ADC-&amp;gt;CR &amp;amp; (0x7&amp;lt;&amp;lt;24) )&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR &amp;amp;= ~(0x7&amp;lt;&amp;lt;24);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; /* Read channels, 0 through 3.*/&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR |= (0x0F);&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR |= (0x1&amp;lt;&amp;lt;16);/* Set burst mode and start A/D convert */&lt;BR /&gt;&amp;nbsp; return;/* the ADC reading is done inside the &lt;BR /&gt;handler, return 0. */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;It seems that as soon as I launch the ADC in burst mode, I don't have any more timer interrupts !&lt;BR /&gt;Any idea ?&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;&lt;BR /&gt;Vince&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:41:26 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:41:26Z</dc:date>
    <item>
      <title>Timer16_0 and ADC in burst mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542084#M12418</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vdelabouere on Tue Dec 17 18:17:38 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using Timer16_0 to generate a 1ms interrupt to do some tasks.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I want to use the ADC in burst mode for the first 4 ADC channels.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the ADC_Init function :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;void ADCInit( uint32_t ADC_Clk )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; uint32_t i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* Disable Power down bit to the ADC block. */&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SYSCON-&amp;gt;PDRUNCFG &amp;amp;= ~(0x1&amp;lt;&amp;lt;4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; /* Enable AHB clock to the ADC. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= (1&amp;lt;&amp;lt;13);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; for ( i = 0; i &amp;lt; 4; i++ )&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; ADCValue&lt;/SPAN&gt;&lt;I&gt; = 0x0;&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;// IO configuration&lt;BR /&gt;LPC_IOCON-&amp;gt;TDI_PIO0_11 &amp;amp;= ~0x9F; /*&amp;nbsp; ADC I/O config */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDI_PIO0_11 |= 0x02;&amp;nbsp; /* ADC IN0 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TMS_PIO0_12 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TMS_PIO0_12 |= 0x02;&amp;nbsp; /* ADC IN1 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDO_PIO0_13 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TDO_PIO0_13 |= 0x02;&amp;nbsp; /* ADC IN2 */&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TRST_PIO0_14 &amp;amp;= ~0x9F;&lt;BR /&gt;&amp;nbsp; LPC_IOCON-&amp;gt;TRST_PIO0_14 |= 0x02;&amp;nbsp; /* ADC IN3 */&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR = ( 0x01 &amp;lt;&amp;lt; 0 ) |&amp;nbsp; /* SEL=1,select channel 0~7 on ADC0 */&lt;BR /&gt;( ( SystemCoreClock / ADC_Clk - 1 ) &amp;lt;&amp;lt; 8 ) |&amp;nbsp; /* CLKDIV = Fpclk / 1000000 - 1 */ &lt;BR /&gt;( 0 &amp;lt;&amp;lt; 16 ) | /* BURST = 0, no BURST, software controlled */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 17 ) |&amp;nbsp; /* CLKS = 0, 11 clocks/10 bits */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 24 ) |&amp;nbsp; /* START = 0 A/D conversion stops */&lt;BR /&gt;( 0 &amp;lt;&amp;lt; 27 );/* EDGE = 0 (CAP/MAT singal falling,trigger A/D conversion) */ &lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; // Enable the ADC ISR&lt;BR /&gt;&amp;nbsp; NVIC_EnableIRQ(ADC_IRQn);&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;INTEN = 0x0F;/* Enable interrupts for the first 4 ADC Channels */&lt;BR /&gt;&amp;nbsp; return;&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;When I want to start the burst mode, I call this function :&lt;BR /&gt;void ADCBurstStart( void )&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp; if ( LPC_ADC-&amp;gt;CR &amp;amp; (0x7&amp;lt;&amp;lt;24) )&lt;BR /&gt;&amp;nbsp; {&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR &amp;amp;= ~(0x7&amp;lt;&amp;lt;24);&lt;BR /&gt;&amp;nbsp; }&lt;BR /&gt;&amp;nbsp; /* Read channels, 0 through 3.*/&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR |= (0x0F);&lt;BR /&gt;&amp;nbsp; LPC_ADC-&amp;gt;CR |= (0x1&amp;lt;&amp;lt;16);/* Set burst mode and start A/D convert */&lt;BR /&gt;&amp;nbsp; return;/* the ADC reading is done inside the &lt;BR /&gt;handler, return 0. */&lt;BR /&gt;}&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;It seems that as soon as I launch the ADC in burst mode, I don't have any more timer interrupts !&lt;BR /&gt;Any idea ?&lt;BR /&gt;&lt;BR /&gt;Thanks&lt;BR /&gt;&lt;BR /&gt;Vince&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/I&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:41:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542084#M12418</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:41:26Z</dc:date>
    </item>
    <item>
      <title>Re: Timer16_0 and ADC in burst mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542085#M12419</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Tue Dec 17 18:48:30 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;How do you stop burst mode?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:41:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542085#M12419</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:41:27Z</dc:date>
    </item>
    <item>
      <title>Re: Timer16_0 and ADC in burst mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542086#M12420</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by vdelabouere on Wed Dec 18 06:16:43 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I stop the burst mode inside the timer ISR and restart it after in the main loop if needed.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:41:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542086#M12420</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:41:28Z</dc:date>
    </item>
    <item>
      <title>Re: Timer16_0 and ADC in burst mode</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542087#M12421</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by R2D2 on Wed Dec 18 06:52:06 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Without seeing your code, especially timer ISR and ADC ISR it's difficult to guess.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Is your timer interrupt still triggered? Did you change interrupt priorities?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Would be useful if you reduce your project to the basic problem and export / post it...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:41:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Timer16-0-and-ADC-in-burst-mode/m-p/542087#M12421</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:41:28Z</dc:date>
    </item>
  </channel>
</rss>

