<?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 LPC1769 timer question in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553914#M12976</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Tue Aug 21 07:38:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hi! I am new to embedded design, and I want to develop a pulse without affected by other functions, so I read the manual and write my code like this in main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; void InitTIM0 (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // System Control register status, set Timer0 power on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 |= ((1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;2)); //Peripheral clock selection for Timer0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINMODE7|=(1&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PR&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset PR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PC&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset PC, when PC= PR {TC +=1, PC=0}, therefore&amp;nbsp; TC incremented every cycle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MCR = (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR0 matches it&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MR0 = 1000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5);//external match0, toggle MAT0.0 when matched&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enables the counting&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but it doesn't output anything on P3.25.. any answer will be appreciated!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:12:24 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:12:24Z</dc:date>
    <item>
      <title>LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553914#M12976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Tue Aug 21 07:38:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;hi! I am new to embedded design, and I want to develop a pulse without affected by other functions, so I read the manual and write my code like this in main:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; void InitTIM0 (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; {&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // System Control register status, set Timer0 power on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCLKSEL0 |= ((1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;2)); //Peripheral clock selection for Timer0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINMODE7|=(1&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PR&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset PR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PC&amp;nbsp; = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset PC, when PC= PR {TC +=1, PC=0}, therefore&amp;nbsp; TC incremented every cycle&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MCR = (1&amp;lt;&amp;lt;1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR0 matches it&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MR0 = 1000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;4)|(1&amp;lt;&amp;lt;5);//external match0, toggle MAT0.0 when matched&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enables the counting&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; }&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but it doesn't output anything on P3.25.. any answer will be appreciated!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:24 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553914#M12976</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:24Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553915#M12977</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 Tue Aug 21 08:09:45 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: KamingLee&lt;/STRONG&gt;&lt;BR /&gt;...I want to develop a pulse...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So PWM?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://knowledgebase.nxp.com/showthread.php?p=16360&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553915#M12977</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:25Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553916#M12978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Wed Aug 22 03:32:24 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;So PWM?&lt;BR /&gt;&lt;BR /&gt;&lt;A href="http://"&gt;http://knowledgebase.nxp.com/showthread.php?p=16360&lt;/A&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks a lot Zero!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have changed your code a bit to adapt to my design, and i figured out that i m not using the CMSIS library so my system cclk and pclk is different.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;this can be found using the function of CLKPWR_GetPCLK(); in lpc17xx_clkpwr.h&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I hope that some people may find this useful!&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void PULSE37500Hz()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This function use PWM to generate the desire frequency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 6);&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; //PWM Power on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(0&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //Reset output pins P3.25 (19,18bit)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;19)|(1&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //set pin function to PWM1.2 at P3.25&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;TCR = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter, TCR used for disable/reset TC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;PR = 30;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System f=120,000,000 /4=30,000,000Hz, use PR to set PWM to 1MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MCR = (1&amp;lt;&amp;lt;1);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR0 matches it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR0 = 26.6;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set PWM cycle 37.5kHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR2 = 13.3;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set duty cycle using channel 2 match register, = 50%&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;LER = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //latch MR0 &amp;amp; MR2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;PCR = (1&amp;lt;&amp;lt;10);&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;&amp;nbsp;&amp;nbsp; //Enable PWM1 Channel 2 output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;TCR = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable counter &amp;amp; PWM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553916#M12978</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:26Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553917#M12979</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 Wed Aug 22 03:46:53 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: KamingLee&lt;/STRONG&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;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR0 = 26.6;&amp;nbsp;&amp;nbsp; //set PWM cycle 37.5kHz
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR2 = 13.3;&amp;nbsp;&amp;nbsp; //set duty cycle using channel 2 match register, = 50%
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;:confused:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Perhaps you want to rethink that part :rolleyes:&amp;nbsp; It's not generating 37.5 kHz :eek:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553917#M12979</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:26Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553918#M12980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Wed Aug 22 04:25:14 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;:confused:&lt;BR /&gt;&lt;BR /&gt;Perhaps you want to rethink that part :rolleyes:&amp;nbsp; It's not generating 37.5 kHz :eek:&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have tested this using my remote-controlled toy car, it is 37.5khz coz the car works fine. i checked my cclk and calculated pclk.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but really, thank you so much!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;btw, could you please also give me some example for how to use the timer? I tried 2 days for this but can't get anything from the MAT0.1 output port.:(&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Cheers!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553918#M12980</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553919#M12981</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 Wed Aug 22 04:55:37 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;If your PWM is running with 30MHz, your prescaler (30) is reducing that to 1MHz. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now you are writing 26.6 to MR0. That's not working :mad: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;MR0 is a 32bit register, so your float (26.6) is casted to integer (26) and written to MR0 :eek:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So your PWM cycle is 1E6/26 Hz = 38461 Hz (that's 2.6% off)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;That your toy is working shows that your toy is very tolerant :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So a better approach would be to prescale 3 and use MR0=267:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So your PWM cycle is 10E6/267 Hz = 37453 Hz (that's 0.13% off)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'll look for a timer match sample later when I'm back in my office ;)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553919#M12981</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:27Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553920#M12982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Wed Aug 22 05:01:06 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;:confused:&lt;BR /&gt;&lt;BR /&gt;Perhaps you want to rethink that part :rolleyes:&amp;nbsp; It's not generating 37.5 kHz :eek:&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;got the timer working as well!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void PULSE0.5Hz()&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //This function use PWM to generate the desire frequency&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 1);&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; //Timer0 Power on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(0&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //Reset output pins P3.25 (19,18bit)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //set pin function to MAT0.0 at P3.25&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter, TCR used for disable/reset TC&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PR&amp;nbsp; = 30;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System f=120,000,000 /4=30,000,000Hz, use PR to set PWM to 1MHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MCR =(1&amp;lt;&amp;lt;1);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR0 matches it&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;5)|(1&amp;lt;&amp;lt;4);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //toggle (1&amp;lt;&amp;lt;1) EM1, drive the MAT0.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MR0 = 1000000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;0);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}:)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553920#M12982</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553921#M12983</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 Wed Aug 22 06:39:55 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;This is a working timer match program (without toggling) :rolleyes:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Note: PR and MR register are using correct counter values (counter starts at zero :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;
#define PCTIM0 1

uint32_t cycle_time = 1000;&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;&amp;nbsp; //cycle time * prescaler * clock
uint32_t on_time&amp;nbsp;&amp;nbsp;&amp;nbsp; =&amp;nbsp; 250;&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;&amp;nbsp; //on time

void TIMER0_IRQHandler(void)
{
 uint32_t regval;
 regval = LPC_TIM0-&amp;gt;IR;
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 1)) //Interrupt flag for match channel 1.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;1); //reset
&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;1);
 }
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 0)) //Interrupt flag for match channel 0.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;0); //reset
&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0);
 }
}

void timer0_init(void)
{
 LPC_PINCON-&amp;gt;PINSEL3 |= (3&amp;lt;&amp;lt;24);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //MAT0.0 P1.28
 LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; PCTIM0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //turn power for TIMER0 on
 LPC_TIM0-&amp;gt;PR&amp;nbsp; = 25-1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //(prescaler -1) to 1MHz
 LPC_TIM0-&amp;gt;MR1 = cycle_time-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //match register 1 = cycle
 LPC_TIM0-&amp;gt;MR0 = LPC_TIM0-&amp;gt;MR1 - on_time;//match register 0 = off time
 LPC_TIM0-&amp;gt;MCR = (1&amp;lt;&amp;lt;0)|(3&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reset MR1
 LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;4)|(2&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //MAT0.0 P1.28
 NVIC_EnableIRQ(TIMER0_IRQn);
 LPC_TIM0-&amp;gt;TCR = 1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //enable Timer0
}&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:12:28 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553921#M12983</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:28Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553922#M12984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Wed Aug 22 13:04:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;If your PWM is running with 30MHz, your prescaler (30) is reducing that to 1MHz. &lt;BR /&gt;&lt;BR /&gt;Now you are writing 26.6 to MR0. That's not working :mad: &lt;BR /&gt;&lt;BR /&gt;MR0 is a 32bit register, so your float (26.6) is casted to integer (26) and written to MR0 :eek:&lt;BR /&gt;&lt;BR /&gt;So your PWM cycle is 1E6/26 Hz = 38461 Hz (that's 2.6% off)&lt;BR /&gt;&lt;BR /&gt;That your toy is working shows that your toy is very tolerant :)&lt;BR /&gt;&lt;BR /&gt;So a better approach would be to prescale 3 and use MR0=267:&lt;BR /&gt;&lt;BR /&gt;So your PWM cycle is 10E6/267 Hz = 37453 Hz (that's 0.13% off)&lt;BR /&gt; &lt;BR /&gt;I'll look for a timer match sample later when I'm back in my office ;)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks Zero! you are right, if the toy is sensitive i might fail in my way! cheers! Do learn a lot these days! I am currently trying to interpret my code from Verilog HDL to C, to cut the size of my design.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;By the way, do you know how can I use the pulse rising edge? I am trying to implement something like:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;always @(posedge CLK)begin&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;....&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;do something&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;end &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;in VERILOG,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;but I always getting wrong timings.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks again!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:29 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553922#M12984</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:29Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553923#M12985</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 Wed Aug 22 13:31:48 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: KamingLee&lt;/STRONG&gt;&lt;BR /&gt;By the way, do you know how can I use the pulse rising edge?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You're kidding :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've added timer0 IRQ handler in sample above, so with enabled MR0 and MR1 interrupt both edges are triggering their interrupts ;)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553923#M12985</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553924#M12986</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Thu Aug 23 14:58:11 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;You're kidding :)&lt;BR /&gt;&lt;BR /&gt;I've added timer0 IRQ handler in sample above, so with enabled MR0 and MR1 interrupt both edges are triggering their interrupts ;)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Zero! Finally adjust it in my own work, and I am still a little bit confused with this :&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER0_IRQHandler(void) {&amp;nbsp; uint32_t regval;&amp;nbsp; regval = LPC_TIM0-&amp;gt;IR;&amp;nbsp; if (regval &amp;amp; (1 &amp;lt;&amp;lt; 1)) //Interrupt flag for match channel 1.&amp;nbsp; {&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;1); //reset&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;1);&amp;nbsp; }&amp;nbsp; if (regval &amp;amp; (1 &amp;lt;&amp;lt; 0)) //Interrupt flag for match channel 0.&amp;nbsp; {&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;0); //reset&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0);&amp;nbsp; } }&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;it seems that you are testing the IR flag and than you set the IR flag again. Dont we need to reset it by 0 instead of 1?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and one more question:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;i try to do something like this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;88x37.5khz pulses -&amp;gt; 40x37.5khz zero(a gap, output nothing)-&amp;gt; 44x37.5khz pulses -&amp;gt; a gap ... &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;any clue to do this? I was thinking about using PWM as an enable signal to control the TIM0. but it only got 6 MR which can only used for 3x double edge processing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you very much!:)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:30 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553924#M12986</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:30Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553925#M12987</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 Aug 23 15:22:23 MST 2012&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;&lt;BR /&gt;it seems that you are testing the IR flag and than you set the IR flag again. Dont we need to reset it by 0 instead of 1?&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;No :) User manual 10360:&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;21.6.1 Interrupt Register (T[0/1/2/3]IR - 0x4000 4000, 0x4000 8000, 0x4009 0000, 0x4009 4000)&lt;BR /&gt;The Interrupt Register consists of 4 bits for the match interrupts and 4 bits for the capture interrupts. If an interrupt is generated then the corresponding bit in the IR will be high. Otherwise, the bit will be low. [COLOR=Red]Writing a logic one to the corresponding IR bit will reset the interrupt[/COLOR]. Writing a zero has no effect. The act of clearing an interrupt for a timer match also clears any corresponding DMA request.&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;i try to do something like this:&lt;BR /&gt;88x37.5khz pulses -&amp;gt; 40x37.5khz zero(a gap, output nothing)-&amp;gt; 44x37.5khz pulses -&amp;gt; a gap ...&lt;BR /&gt;&lt;BR /&gt;any clue to do this? &lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;A simple counter with a simple flag will do this job ;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#1 Count your pulses inside Interrupt handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#2 If it reaches your desired value reset a flag, which disables just the LPC_TIM0-&amp;gt;EMR = ... line.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#3 Load a new counter value which sets the flag again and enables EMR line again...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Changing sample above to pulse counting should require about 10 minutes :eek:&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553925#M12987</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:31Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553926#M12988</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Thu Aug 23 15:46:57 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;No :) User manual 10360:&lt;BR /&gt;A simple counter with a simple flag will do this job ;)&lt;BR /&gt;&lt;BR /&gt;#1 Count your pulses inside Interrupt handler&lt;BR /&gt;&lt;BR /&gt;#2 If it reaches your desired value reset a flag, which disables just the LPC_TIM0-&amp;gt;EMR = ... line.&lt;BR /&gt;&lt;BR /&gt;#3 Load a new counter value which sets the flag again and enables EMR line again...&lt;BR /&gt;&lt;BR /&gt;Changing sample above to pulse counting should require about 10 minutes :eek:&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for your help Zero, it takes you probably less than 10 minutes, but for a noob like me i will need a whole night to test.. I will let you know my progress and probably ask for your help tomorrow morning!:p haha! Thanks a lot!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:31 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553926#M12988</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:31Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553927#M12989</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 Aug 23 16:09:17 MST 2012&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;&lt;BR /&gt; it takes you probably less than 10 minutes...&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt;8 1/2 minutes&amp;nbsp; &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; Much faster than searching my old IR code from last century projects &lt;SPAN class="lia-unicode-emoji" title=":face_with_tongue:"&gt;&lt;LI-EMOJI id="lia_face-with-tongue" title=":face_with_tongue:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&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;
//counter values
#define MAX_SEQUENCE 4&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set number of sequence
volatile uint8_t counter = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //count pulses
volatile uint8_t sequence=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //switch sequence
volatile uint8_t pulse[4] = {10,2,4,7}; //values for on/off/on/off...
volatile uint8_t pulse_enable=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flag to switch output

void TIMER0_IRQHandler(void)
{
 uint32_t regval;
 regval = LPC_TIM0-&amp;gt;IR;
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 1)) //Interrupt flag for match channel 1.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;1); //reset
&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;1);
&amp;nbsp; counter++;&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;&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; //count pulse
&amp;nbsp; if(counter &amp;gt;= pulse[sequence])&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reached counter
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; counter =0;&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;&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; //reset counter
&amp;nbsp;&amp;nbsp; sequence++;&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;&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; //next sequence
&amp;nbsp;&amp;nbsp; if(sequence &amp;gt;= MAX_SEQUENCE) sequence = 0;//restart sequence
&amp;nbsp;&amp;nbsp; pulse_enable = !(sequence % 2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set on for sequence = 0,2,4...
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //end reached counter
 }
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 0)) //Interrupt flag for match channel 0.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;0); //reset
&amp;nbsp; if(pulse_enable)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if pulse enabled
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0);&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;&amp;nbsp; //switch on
&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:12:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553927#M12989</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:32Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553928#M12990</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Thu Aug 23 16:14:42 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;8 1/2 minutes&amp;nbsp; &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; Much faster than searching my old IR code from last century projects &lt;SPAN class="lia-unicode-emoji" title=":face_with_tongue:"&gt;&lt;LI-EMOJI id="lia_face-with-tongue" title=":face_with_tongue:"&gt;&lt;/LI-EMOJI&gt;&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;
//counter values
#define MAX_SEQUENCE 4&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set number of sequence
volatile uint8_t counter = 0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //count pulses
volatile uint8_t sequence=0;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //switch sequence
volatile uint8_t pulse[4] = {10,2,4,7}; //values for on/off/on/off...
volatile uint8_t pulse_enable=1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //flag to switch output

void TIMER0_IRQHandler(void)
{
 uint32_t regval;
 regval = LPC_TIM0-&amp;gt;IR;
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 1)) //Interrupt flag for match channel 1.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;1); //reset
&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;1);
&amp;nbsp; counter++;&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;&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; //count pulse
&amp;nbsp; if(counter &amp;gt;= pulse[sequence])&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //reached counter
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; counter =0;&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;&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; //reset counter
&amp;nbsp;&amp;nbsp; sequence++;&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;&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; //next sequence
&amp;nbsp;&amp;nbsp; if(sequence &amp;gt;= MAX_SEQUENCE) sequence = 0;//restart sequence
&amp;nbsp;&amp;nbsp; pulse_enable = !(sequence % 2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set on for sequence = 0,2,4...
&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;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //end reached counter
 }
 if (regval &amp;amp; (1 &amp;lt;&amp;lt; 0)) //Interrupt flag for match channel 0.
 {
&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;0); //reset
&amp;nbsp; if(pulse_enable)&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if pulse enabled
&amp;nbsp; {
&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0);&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;&amp;nbsp; //switch on
&amp;nbsp; }
 }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You are amazing!!!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I will leave your code for an hour or later, try to do it my self first:D&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Great thanks to you!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:32 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553928#M12990</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:32Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553929#M12991</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by KamingLee on Sun Aug 26 05:36:59 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Zero&lt;/STRONG&gt;&lt;BR /&gt;8 1/2 minutes&amp;nbsp; &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; Much faster than searching my old IR code from last century projects &lt;SPAN class="lia-unicode-emoji" title=":face_with_tongue:"&gt;&lt;LI-EMOJI id="lia_face-with-tongue" title=":face_with_tongue:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Was out last two days for work.Thanks a lot zero, I finally finish my design,by "stealing" your idea of interrupt. I finish this by entering the interrupt after every cycle, and count the cycle in the handler, just like your description in the previous post. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my code for an IR controller. Hope will do help to somebody seeking for help as well!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Learn a lot from you. Thank you again! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp; &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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
#include "lpc17xx_gpio.h"
#include "system_LPC17xx.h"
#include "core_cm3.h"
#include "lpc17xx_pwm.h"

#define FORWARD&amp;nbsp;&amp;nbsp; 0x24
#define BACKWARD&amp;nbsp; 0x12
#define LEFT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x1
#define RIGHT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x8

uint32_t F = 22;//Global variables
uint32_t B = 22;//Initialize number of pulses
uint32_t L = 22;
uint32_t R = 22;

//This is used for PWM practicing
void PULSE37500Hz()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 6);&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; //PWM Power on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(0&amp;lt;&amp;lt;19)|(0&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //Reset output pins P3.25 (19,18bit)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;19)|(1&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp; //set pin function to PWM1.2 at P3.25

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;TCR = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter, TCR used for disable/reset TC
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;PR = 3;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System f=120,000,000 /4=30,000,000Hz, use PR to set PWM to 10MHz
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MCR = (1&amp;lt;&amp;lt;1);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR0 matches it
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR0 = 266;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set PWM cycle 37.5kHz (26.6)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;MR2 = 133;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //set duty cycle using channel 2 match register, = 50% (13.3)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;LER = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //latch MR0 &amp;amp; MR2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;PCR = (1&amp;lt;&amp;lt;10);&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;&amp;nbsp;&amp;nbsp; //Enable PWM1 Channel 2 output
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PWM1-&amp;gt;TCR = (1&amp;lt;&amp;lt;0)|(1&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable counter &amp;amp; PWM
}

//This is used for Timer Study
void Init_PULSE10Hz()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SC-&amp;gt;PCONP |= (1 &amp;lt;&amp;lt; 1);&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; //Timer0 Power on
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(0&amp;lt;&amp;lt;21)|(0&amp;lt;&amp;lt;20);&amp;nbsp;&amp;nbsp; //Reset output pins P3.26 (21,20bit)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_PINCON-&amp;gt;PINSEL7 |=(1&amp;lt;&amp;lt;21)|(0&amp;lt;&amp;lt;20);&amp;nbsp;&amp;nbsp; //set pin function to MAT0.1 at P3.25

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = 2;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset the counter (TCR is used for disable/reset TC)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;PR&amp;nbsp; = 30;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //System f=120,000,000/4=30,000,000Hz, use PR to set Timer to 1MHz

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MCR |=(1&amp;lt;&amp;lt;4);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Match control register, TC reset if MR1 matches it
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = 0;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Reset EMR do nothing when TC=MR1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR |= (1&amp;lt;&amp;lt;7)|(1&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //when TC=MR1, toggle on MATx.1(EM1)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;MR1 = 250000;&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;&amp;nbsp;&amp;nbsp; //half of the pulse T, toggle at this point
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;TCR = (1&amp;lt;&amp;lt;0);&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;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable counting
}

uint8_t NavigationSM_ModifyPulseLength_ReturnState()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t STATE = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t TEST&amp;nbsp; = ((~GPIO_ReadValue(2)) &amp;amp; 0x3F);//Test Port2 bit5,4,3,2,1,0

&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (TEST)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE =(1&amp;lt;&amp;lt;3); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE =(1&amp;lt;&amp;lt;2); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (LEFT):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE =(1&amp;lt;&amp;lt;1); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (RIGHT):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STATE =(1&amp;lt;&amp;lt;0); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD+LEFT):&amp;nbsp;&amp;nbsp; STATE =(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;1); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD+RIGHT):&amp;nbsp; STATE =(1&amp;lt;&amp;lt;3)|(1&amp;lt;&amp;lt;0); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD+LEFT):&amp;nbsp; STATE =(1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;1); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD+RIGHT): STATE =(1&amp;lt;&amp;lt;2)|(1&amp;lt;&amp;lt;0); break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:&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; STATE = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; return STATE;
}


uint32_t count = 0;&amp;nbsp; //set up a counter to count the pulse
uint32_t EN&amp;nbsp;&amp;nbsp;&amp;nbsp; = 1;&amp;nbsp; //Enable signal use for External Match MAT0.0(P3.25) output

void TIMER0_IRQHandler(void)
{
 uint32_t flag;
 flag = LPC_TIM0-&amp;gt;IR;

 uint32_t S = 88; //start - Pulse numbers
 uint32_t C = 44; //car select
 uint32_t G = 40; //Gap

 if (flag &amp;amp; (1 &amp;lt;&amp;lt; 1)) //Interrupt flag for match channel 1.
 {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;1); //reset
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;1);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t TEST&amp;nbsp; = ((~GPIO_ReadValue(2)) &amp;amp; 0x3F);//Always when interrupt, test Port2 bit5,4,3,2,1,0
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (TEST)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD):&amp;nbsp; F = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD): B = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (LEFT):&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; L = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (RIGHT):&amp;nbsp;&amp;nbsp;&amp;nbsp; R = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD+LEFT):&amp;nbsp;&amp;nbsp; F = 44; L = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (FORWARD+RIGHT):&amp;nbsp; F = 44; R = 44; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD+LEFT):&amp;nbsp; B = 44; L = 44;break;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case (BACKWARD+RIGHT): B = 44; R = 44;break;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; default:F = B = L = R = 22;
&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;&amp;nbsp;&amp;nbsp; count++; //The MR1 interrupt is entered after every 37.5kHz pulse, "count" used for pulse counting
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (count == S + G + C + G + R + G + L + G + B + G + F + 3750-1 ) count=0;//One package, approximately 10 Hz
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (&amp;nbsp; ((count&amp;gt;S )&amp;amp;&amp;amp;(count&amp;lt;S+G -1)) //Test the counter, during the GAP and the 10Hz delay, the EN is reset to 0.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||((count&amp;gt;S + G + C )&amp;amp;&amp;amp;(count&amp;lt;S+G+C+G -1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||((count&amp;gt;S + G + C + G + R )&amp;amp;&amp;amp;(count&amp;lt;S + G + C + G + R + G -1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||((count&amp;gt;S + G + C + G + R + G + L )&amp;amp;&amp;amp;(count&amp;lt;S + G + C + G + R + G + L + G -1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||((count&amp;gt;S + G + C + G + R + G + L + G + B )&amp;amp;&amp;amp;(count&amp;lt;S + G + C + G + R + G + L + G + B + G -1))
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ||((count&amp;gt;S + G + C + G + R + G + L + G + B + G + F )&amp;amp;&amp;amp;(count&amp;lt;S + G + C + G + R + G + L + G + B + G + F + 3750 -1))
&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;&amp;nbsp;&amp;nbsp; EN = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else EN = 1;

 }

 if (flag &amp;amp; (1 &amp;lt;&amp;lt; 0)) //Interrupt flag for MR0(channel 0)
 {

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;IR = (1&amp;lt;&amp;lt;0); //reset
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (EN)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;0);
 }
}

#define TIM0PWR_ON 1
uint32_t OneCycle = 266;&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;&amp;nbsp; //cycle time * prescaler * clock
uint32_t On_Time&amp;nbsp;&amp;nbsp;&amp;nbsp; = 133;&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;&amp;nbsp; //on time

void timer0_init(void)
{
 LPC_PINCON-&amp;gt;PINSEL7 |= (2&amp;lt;&amp;lt;18);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //function MAT0.0 P3.25 11-&amp;gt;19,18bits
 LPC_SC-&amp;gt;PCONP&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; |= (1 &amp;lt;&amp;lt; TIM0PWR_ON);&amp;nbsp; //turn power for TIMER0 on

 LPC_TIM0-&amp;gt;PR&amp;nbsp; = 3;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //prescaler set timer to 1MHz
 LPC_TIM0-&amp;gt;MR1 = OneCycle-1;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //use MR1 to set cycle
 LPC_TIM0-&amp;gt;MR0 = LPC_TIM0-&amp;gt;MR1 - On_Time; //match register 0 = off time

 LPC_TIM0-&amp;gt;MCR = (1&amp;lt;&amp;lt;0)|(3&amp;lt;&amp;lt;3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1&amp;lt;&amp;lt;0 Interrupt on MR0, 3&amp;lt;&amp;lt;3 reset + Interrupt on MR1
 LPC_TIM0-&amp;gt;EMR = (1&amp;lt;&amp;lt;4)|(2&amp;lt;&amp;lt;6);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //1&amp;lt;&amp;lt;4 Clears EM0, MAT0.0 cleared. 2&amp;lt;&amp;lt;6 Sets EM1, MAT0.1 Set
 NVIC_EnableIRQ(TIMER0_IRQn);&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; //Enable timer0 interrupt
 LPC_TIM0-&amp;gt;TCR = 1;&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable Timer0
}
 
&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:12:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553929#M12991</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:33Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1769 timer question</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553930#M12992</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jomonthomasnew on Mon Oct 19 06:27:09 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;The steps involved in configuring a timer in LPC17xx is as follows.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;1.Reset the timer by configuring TCR.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;2.Set Prescale value in PR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;3.Set the count value in Match register(MR)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;4.Set appropriate value in MCR.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;5.Enable the timer by configuring TCR.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;6.Enable timer interrupt if needed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You can find a good tutorial with the details of registers used for timer programming from the below link.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.techmasterplus.com%2Ftutorials%2Farm-timer.php" rel="nofollow" target="_blank"&gt;http://www.techmasterplus.com/tutorials/arm-timer.php&lt;/A&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:12:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-timer-question/m-p/553930#M12992</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:12:34Z</dc:date>
    </item>
  </channel>
</rss>

