<?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: How to clear Timer0 match IT?</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559749#M15554</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 Thu Jul 09 12:24:43 MST 2015&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;Earlier I also tried this, but also didn't work...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could be useful to post a complete project...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 22:18:17 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T22:18:17Z</dc:date>
    <item>
      <title>How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559744#M15549</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Thu Jul 09 11:26:11 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Ladies and gentlemen,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I need assistance again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I wrote a silly little code for my LPCXpresso board. It is connected to a base board, and I try to control the brightness of the RGB LED by PWM. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I' like to use Timer0 to generate the PWM signal, using Match0 - Match3 registers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My plan is to independently control the 3 LEDs, but at the moment I control them all together.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Match1 determines the PWM period, when I got a Match1 IT, I turn all LEDs on.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Match0, Match2, Match3 registers are to determine the duty cycle, the corresponding IT routines turn the LEDs off.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I write the Timer0_IT routine the following way, then it works:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER0_IRQHandler (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NVIC_ClearPendingIRQ(TIMER0_IRQn);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (( LPC_TIMER0-&amp;gt;IR &amp;amp; 1&amp;lt;&amp;lt;0) == 1)&amp;nbsp; // if Timer0 Match0 resulted an IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;IR |= (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; // clear Match0 IT request&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; Timer0Match0IT ();&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // then call Timer0Match0IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{ Timer0Match1IT () ;};&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // call Timer0Match1IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So, this code works, but if I single step through it (LPCXpresso 7.8.0), neither the Match0 nor the Match1 IT request bits are cleared. I see peripherals-&amp;gt;Timer0-&amp;gt;IR-&amp;gt;MR0I and MR1I bits.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since my plan is to use all the 4 match registers, I modified my code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void TIMER0_IRQHandler (void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;NVIC_ClearPendingIRQ(TIMER0_IRQn);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (( LPC_TIMER0-&amp;gt;IR &amp;amp; 1&amp;lt;&amp;lt;0) == 1)// if Timer0 Match0 resulted an IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;0);// clear IT request&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Timer0Match0IT ();// then call Timer0Match0IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;};&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;if (( LPC_TIMER0-&amp;gt;IR &amp;amp; 1&amp;lt;&amp;lt;1) == 1)// if Timer0 Match1 resulted an IT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;1);// clear IT request&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Timer0Match1IT ();// then call Timer0Match1IT service routine&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;&amp;nbsp; return ;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I debug this code, Timer0Match0IT is called periodically, but Timer0Match1IT never called, despite I see the corresponding IT request bit is set.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What is the reason, the second if condition doesn't get true?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;What is the proper way to delete the Timer0Match0 interrupt? (Yes, I read in the manual: I have to write a 1 into the corresponding register. But it doesn't clear the bit.)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the routine that sets Timer0 up at the begin of the program:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void Timer0Setup (void)// Timer0 creates the PWM signal to control the brightness of the LED.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{LPC_SYSCTL-&amp;gt;PCONP|= 1&amp;lt;&amp;lt;1;// Power up Timer0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_SYSCTL-&amp;gt;PCLKSEL[0] = (LPC_SYSCTL-&amp;gt;PCLKSEL[0] &amp;amp; ~(1&amp;lt;&amp;lt;2 | 1&amp;lt;&amp;lt;3)) | (1&amp;lt;&amp;lt;2 | 0&amp;lt;&amp;lt;3);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MCR = 0;// clear all bits in Match Control Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;CCR= 0;// clear all bits in Capture Control Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;CTCR= 0;// Clear all bits in Count Control Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;TCR = 0;// clear all bits in Timer Control Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;EMR= 0;// clear all bits in Timer External Match Register&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;PR = 12;// Prescale register = 12&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MCR= (LPC_TIMER0-&amp;gt;MCR &amp;amp; ~0x7ff) | (1&amp;lt;&amp;lt;0 | 0&amp;lt;&amp;lt;1 | 1&amp;lt;&amp;lt;3 | 1&amp;lt;&amp;lt;4 ); //| 1&amp;lt;&amp;lt;6 | 1&amp;lt;&amp;lt;9);// Match control register IT enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MR[0]&amp;nbsp; = 503;// initial value for Match0 register (Duty cycle Red LEDs) at 26°(145. Value Up)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MR[1]&amp;nbsp; = 10100;// initial value for Match1 register (PWM Period)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MR[2] = 9153;// initial value for Match2 register (Duty Cycle Green Led) at 146° (812. value UP)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;MR[3]= 5345 ;// initial value for Match3 register (Duty cycle Blue Led at 266°&amp;nbsp;&amp;nbsp; (1479. value Down)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;TCR= 1&amp;lt;&amp;lt;0;// Timer control register. Timer0 enabled&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;return ;&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:18:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559744#M15549</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:13Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559745#M15550</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 Thu Jul 09 11:28:17 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Any hint which MCU we are talking about?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559745#M15550</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559746#M15551</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Thu Jul 09 11:36:21 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC1769&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559746#M15551</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:15Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559747#M15552</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 Thu Jul 09 11:45:16 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Bela&lt;/STRONG&gt;&lt;BR /&gt;What is the proper way to delete the Timer0Match0 interrupt? (Yes, I read in the manual: I have to write a 1 into the corresponding register. &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And why don't you do it&amp;nbsp; :quest: &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;LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;0); // clear IT request&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:18:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559747#M15552</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:16Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559748#M15553</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Thu Jul 09 11:53:31 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;gt; LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;0); // clear IT request&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Doesn't this write a 1 into the IT request bit?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Earlier I also tried this, but also didn't work:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;IR = 0x1&amp;lt;&amp;lt;0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;At least if I single step through in LPCXpresso, the bit remains unchanged, always 1. At the very begin of the program it is still 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559748#M15553</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559749#M15554</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 Thu Jul 09 12:24:43 MST 2015&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;Earlier I also tried this, but also didn't work...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Could be useful to post a complete project...&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559749#M15554</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:17Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559750#M15555</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Thu Jul 09 13:01:14 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Attached is Proba04.zip&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the whole project :-)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Everything seems to work but Timer0 interrupt. And I cannot find out, why the Timer0Match1IT never called.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559750#M15555</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:18Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559751#M15556</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 Thu Jul 09 13:36:02 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Then try to write your program in C:&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;void Timer0Match0IT (void)// This IT service routine switches the red LED OFF.
 {
//LPC_TIMER0-&amp;gt;IR = 0x1&amp;lt;&amp;lt;0; // clear IT request;
//dummyroutine();
SwitchRedLed(0);// Turn off red LED
SwitchGreenLed(0);
SwitchBlueLed(0);
 }

void Timer0Match1IT (void)// This IT service routine has to switch the 3 LEDs ON and clears TIMER0.
{
//LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;1); // clear IT request
SwitchRedLed(1);
SwitchGreenLed(1);
//SwitchBlueLed(1);
}
/*
void Timer0Match2IT (void)// This IT service routine switches the Green LED OFF.
{
LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;2); // clear IT request;
SwitchGreenLed(0);// Turn off green LED
}

void Timer0Match3IT (void)// This IT service routine switches the Blue LED OFF.
{
LPC_TIMER0-&amp;gt;IR |= (1&amp;lt;&amp;lt;3); // clear IT request;
SwitchBlueLed(0);// Turn off red LED
}*/
/*void TIMER0_IRQHandler(void)
{
if (Chip_TIMER_MatchPending(LPC_TIMER0, 1)) {
Chip_TIMER_ClearMatch(LPC_TIMER0, 1);
Board_LED_Toggle(0);
}
}*/
void TIMER0_IRQHandler (void)
{
 NVIC_ClearPendingIRQ(TIMER0_IRQn);
 if(LPC_TIMER0-&amp;gt;IR &amp;amp; (1&amp;lt;&amp;lt;0))// if Timer0 Match0 resulted an IT
 {
&amp;nbsp; LPC_TIMER0-&amp;gt;IR = (1&amp;lt;&amp;lt;0);// clear IT request
&amp;nbsp; Timer0Match0IT();// then call Timer0Match0IT
 }
 if(LPC_TIMER0-&amp;gt;IR &amp;amp; (1&amp;lt;&amp;lt;1))// if Timer0 Match1 resulted an IT
 {
&amp;nbsp; LPC_TIMER0-&amp;gt;IR = (1&amp;lt;&amp;lt;1);// clear IT request
&amp;nbsp; Timer0Match1IT();// then call Timer0Match1IT service routine
 }
}&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:18:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559751#M15556</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559752#M15557</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Fri Jul 10 06:13:39 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank You, R2D2! &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My program works already!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Just one more question, please:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If I single step through my Timer0 IT handler, there's a point, when the IT request must be cleared. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I do it by the following instruction:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC_TIMER0-&amp;gt;IR = (1&amp;lt;&amp;lt;0) ; // this must clear the Timer0 Match0 IT request.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The program works, therefore this IT bit is probably cleared. But look at the screenshot please: TIMER0-&amp;gt;IR-&amp;gt;MR0I bit remained 1. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Shouldn't it show me 0?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559752#M15557</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:19Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559753#M15558</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 Fri Jul 10 06:25:25 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Bela&lt;/STRONG&gt;&lt;BR /&gt;The program works, therefore this IT bit is probably cleared. But look at the screenshot please: TIMER0-&amp;gt;IR-&amp;gt;MR0I bit remained 1. &lt;BR /&gt;&lt;BR /&gt;Shouldn't it show me 0?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes and No&amp;nbsp; :~ &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You don't stop the timer with a breakpoint, so it's still running while you are debugging&amp;nbsp; :O &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you enable EMR you can see how Match outputs are switched while you are stepping through the program&amp;nbsp; ;-) &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you stop the timer you can see how IR bits are cleared&amp;nbsp; :) &lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559753#M15558</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559754#M15559</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Fri Jul 10 06:45:47 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: R2D2&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You don't stop the timer with a breakpoint, so it's still running while you are debugging&amp;nbsp; :O &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Oooh, thanks, than it was my mistake. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought if the CPU is stopped due to single stepping, it is obvious to stop the peripherals as well. So, it isn't. OK, I have to memorize it :-)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: R2D2&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;If you enable EMR you can see how Match outputs are switched while you are stepping through the program&amp;nbsp; ;-) &lt;BR /&gt;&lt;BR /&gt;If you stop the timer you can see how IR bits are cleared&amp;nbsp; :)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where can I read more about these possibilities? Excuse me, I don't clearly understand what EMR is and how to stop the timer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559754#M15559</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559755#M15560</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Fri Jul 10 06:45:49 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: R2D2&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;You don't stop the timer with a breakpoint, so it's still running while you are debugging&amp;nbsp; :O &lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Oooh, thanks, than it was my mistake. &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I thought if the CPU is stopped due to single stepping, it is obvious to stop the peripherals as well. So, it isn't. OK, I have to memorize it :-)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: R2D2&lt;/STRONG&gt;&lt;BR /&gt;&lt;BR /&gt;If you enable EMR you can see how Match outputs are switched while you are stepping through the program&amp;nbsp; ;-) &lt;BR /&gt;&lt;BR /&gt;If you stop the timer you can see how IR bits are cleared&amp;nbsp; :)&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Where can I read more about these possibilities? Excuse me, I don't clearly understand what EMR is and how to stop the timer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:21 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559755#M15560</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:21Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559756#M15561</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 Fri Jul 10 07:07:19 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Bela&lt;/STRONG&gt;&lt;BR /&gt;...how to stop the timer.&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Clearing bit 0 of TCR is stopping the timer&amp;nbsp; &lt;SPAN class="lia-unicode-emoji" title=":face_with_open_mouth:"&gt;&lt;LI-EMOJI id="lia_face-with-open-mouth" title=":face_with_open_mouth:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: Bela&lt;/STRONG&gt;&lt;BR /&gt;Where can I read more about these possibilities? Excuse me, I don't clearly understand what EMR is...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;UM10360:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;21.5 Pin description&lt;BR /&gt;...&lt;BR /&gt;Output External Match Output - When a match register (MR3:0) equals the timer counter (TC) this output can either toggle, go low, go high, or do nothing. The External Match Register (EMR) controls the functionality of this output. Match Output functionality can be selected on a number of pins in parallel. So you can use EMR to switch MAT pins, if they are selected.&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In your case:&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;void EMR_init(void)
{
 LPC_IOCON-&amp;gt;PINSEL[3] |= (3&amp;lt;&amp;lt;24) | (3&amp;lt;&amp;lt;26);//select MAT0.0 (P1[28]) / MAT0.1 (P1[29])
 LPC_TIMER0-&amp;gt;EMR = (3&amp;lt;&amp;lt;4)|(3&amp;lt;&amp;lt;6); //set match function 1:clear 2:set 3:toggle
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now MAT0.0 / MAT0.1 pins are toggled&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; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Of course you can also switch this pins with setting / clearing EM bit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: &lt;/STRONG&gt;&lt;BR /&gt;EM0 External Match 0. &lt;BR /&gt;When a match occurs between the TC and MR0, this bit can either toggle, go low, go high, or do nothing, depending on bits 5:4 of this register. This bit can be driven onto a MATn.0 pin, in a positive-logic manner (0 = low, 1 = high).&lt;BR /&gt;&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In your case:&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;LPC_TIMER0-&amp;gt;EMR |= (1&amp;lt;&amp;lt;0);//set MAT0.0&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559756#M15561</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559757#M15562</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Bela on Fri Jul 10 08:15:13 MST 2015&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; Clearing bit 0 of TCR is stopping the timer &lt;/SPAN&gt;&lt;HR /&gt;&lt;SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Well, it is right, but it doesn't help in single stepping. I thought there's a method to stop the peripheral clock when single step or when a breakpoint is reached.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Back to the origin: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If I break the code by a breakpoint in the IT service routine, then I single step to detect what's wrong, I can step back to the main() routine. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Since the peripheral clock continously runs, I do not recognize the cleared IT flag, because it is set back so quickly I cannot see. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Am I right until this?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then, when I single step back to the main() loop, why I don't get the next IT immediately? I am able to single step there for a very long time in the while (1) loop.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It would be consequent to have the next IT immediately, since the corresponding IT flag is set.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 22:18:22 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559757#M15562</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:22Z</dc:date>
    </item>
    <item>
      <title>Re: How to clear Timer0 match IT?</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559758#M15563</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 Fri Jul 10 08:51:49 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;An easy way to check IR is to set the breakpoint in a stop / start sequence:&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;void TIMER0_IRQHandler (void)
{
 NVIC_ClearPendingIRQ(TIMER0_IRQn);
 if(LPC_TIMER0-&amp;gt;IR &amp;amp; (1&amp;lt;&amp;lt;0))// if Timer0 Match0 resulted an IT
 {
&amp;nbsp; LPC_TIMER0-&amp;gt;TCR&amp;amp;= ~(1&amp;lt;&amp;lt;0);// stop timer
[color=#f00](insert breakpoint here)[/color]&amp;nbsp; LPC_TIMER0-&amp;gt;IR = (1&amp;lt;&amp;lt;0);// clear IT request
&amp;nbsp; LPC_TIMER0-&amp;gt;TCR|= (1&amp;lt;&amp;lt;0);// start timer
&amp;nbsp; Timer0Match0IT();// then call Timer0Match0IT
 }
 if(LPC_TIMER0-&amp;gt;IR &amp;amp; (1&amp;lt;&amp;lt;1))// if Timer0 Match1 resulted an IT
 {
&amp;nbsp; LPC_TIMER0-&amp;gt;TCR&amp;amp;= ~(1&amp;lt;&amp;lt;0);// stop timer
[color=#f00](insert breakpoint here)[/color]&amp;nbsp; LPC_TIMER0-&amp;gt;IR = (1&amp;lt;&amp;lt;1);// clear IT request
&amp;nbsp; LPC_TIMER0-&amp;gt;TCR|= (1&amp;lt;&amp;lt;0);// start timer
&amp;nbsp; Timer0Match1IT();// then call Timer0Match1IT service routine
 }
}
&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:18:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/How-to-clear-Timer0-match-IT/m-p/559758#M15563</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T22:18:23Z</dc:date>
    </item>
  </channel>
</rss>

