<?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>topic Timer Query - LPC1317-64 Pin in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Query-LPC1317-64-Pin/m-p/584040#M26126</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aamir ali on Fri Nov 23 00:41:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have to set timer in such a way that after interrupt is get stopped &amp;amp; want to start it agian when some specific condition met.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I write TCR = 0x03 or TCR = 0x01; in code below to start timer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Condition comes from another interrupt &amp;amp; this run infinitely.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First timer timer will run fine as counter has been sync. will PCLK. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But when next timer has run second time, is it necessary again to sync. it&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;

void start()
{
&amp;nbsp;&amp;nbsp; timer_CT16B1_initialize();

&amp;nbsp; while(1)
&amp;nbsp; { 
&amp;nbsp;&amp;nbsp; if(condition_match)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; condition_match = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [B][I][U[COLOR=Purple]]LPC_CT16B1-&amp;gt;TCR = 0x01;&amp;nbsp;&amp;nbsp; // start timer[/COLOR][/U][/I][/B]
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }
}

void CT16B1_IRQHandler(void)
{&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;IR = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear int flag by setting 
}


/*
Timer 16 interrupt initializer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
*/
void timer_CT16B1_initialize(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_SetPriority(CT16B1_IRQn,0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(CT16B1_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= GPIO_BIT_8;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;TCR = 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* reset timer */

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;PR&amp;nbsp; = 599;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //prescaler value

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;MR0 = 4800;&amp;nbsp;&amp;nbsp; 
//Total delay = MR0 * (PR + 1) * Inst cycle , i.e 0x1c20 * (99+1) * 13.89 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;IR =&amp;nbsp; 0x003f;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //disable interrupt initially

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;MCR = 0x0007;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; //reset on match i.e TC will be zero, &amp;amp; interrupt on match &amp;amp; stop
&amp;nbsp; 
}


&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 22:45:54 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:45:54Z</dc:date>
    <item>
      <title>Timer Query - LPC1317-64 Pin</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Query-LPC1317-64-Pin/m-p/584040#M26126</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aamir ali on Fri Nov 23 00:41:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I have to set timer in such a way that after interrupt is get stopped &amp;amp; want to start it agian when some specific condition met.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I write TCR = 0x03 or TCR = 0x01; in code below to start timer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Condition comes from another interrupt &amp;amp; this run infinitely.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;First timer timer will run fine as counter has been sync. will PCLK. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;But when next timer has run second time, is it necessary again to sync. it&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;

void start()
{
&amp;nbsp;&amp;nbsp; timer_CT16B1_initialize();

&amp;nbsp; while(1)
&amp;nbsp; { 
&amp;nbsp;&amp;nbsp; if(condition_match)
&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; condition_match = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; [B][I][U[COLOR=Purple]]LPC_CT16B1-&amp;gt;TCR = 0x01;&amp;nbsp;&amp;nbsp; // start timer[/COLOR][/U][/I][/B]
&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }
}

void CT16B1_IRQHandler(void)
{&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;IR = 0x01;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //clear int flag by setting 
}


/*
Timer 16 interrupt initializer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
*/
void timer_CT16B1_initialize(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_SetPriority(CT16B1_IRQn,0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(CT16B1_IRQn);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL |= GPIO_BIT_8;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;TCR = 0x02;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* reset timer */

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;PR&amp;nbsp; = 599;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; //prescaler value

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;MR0 = 4800;&amp;nbsp;&amp;nbsp; 
//Total delay = MR0 * (PR + 1) * Inst cycle , i.e 0x1c20 * (99+1) * 13.89 

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;IR =&amp;nbsp; 0x003f;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //disable interrupt initially

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_CT16B1-&amp;gt;MCR = 0x0007;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp; //reset on match i.e TC will be zero, &amp;amp; interrupt on match &amp;amp; stop
&amp;nbsp; 
}


&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 22:45:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/Timer-Query-LPC1317-64-Pin/m-p/584040#M26126</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:45:54Z</dc:date>
    </item>
  </channel>
</rss>

