<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC Microcontrollersのトピックusingg RI timer in LPC1317</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/usingg-RI-timer-in-LPC1317/m-p/524964#M7600</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aamir ali on Thu Aug 01 04:24:57 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;1. What is the purpose of MASk register. I don't understand by datasheet should I set mask value equal to compare value for getting interrupt at that value when counter reached it. Or I should left it clear. Ineed a straight 1 sec delay repeatedly. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I checked example code from LPCopen &amp;amp; made one example &amp;amp; its working ok now. I had put 0 in mask register&amp;nbsp; I need 1 sec int only. Is it correct way, by writing 0 to mask register:&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 OSTIMER_IRQHandler(void)
{
/* Clearn interrupt */
LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_0);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear int flag */&amp;nbsp;&amp;nbsp; 
}


main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) &amp;amp; (~(BIT_3));&amp;nbsp; /* disable timer */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_0);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear any int flag */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COMPVAL&amp;nbsp;&amp;nbsp; = 72000000;&amp;nbsp;&amp;nbsp; /* 1 sec delay */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COMPVAL_H = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;MASK_H&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COUNTER&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COUNTER_H = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) &amp;amp; (~(BIT_2));&amp;nbsp; /* debug has no effect */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* timer will be cleared to zero on int */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable timer */
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(RIT_IRQn);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1);

}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. In LPCopen the name of ISr was &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 RIT_IRQHandler(void)
{
/* Clearn interrupt */
Chip_RIT_ClearInt(LPC_RITIMER);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But in startup_LPC13Uxx.s its void OSTIMER_IRQHandler(void). Why is it different or LPCopen uses updated version of file&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 16:55:13 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T16:55:13Z</dc:date>
    <item>
      <title>usingg RI timer in LPC1317</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/usingg-RI-timer-in-LPC1317/m-p/524964#M7600</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by aamir ali on Thu Aug 01 04:24:57 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;1. What is the purpose of MASk register. I don't understand by datasheet should I set mask value equal to compare value for getting interrupt at that value when counter reached it. Or I should left it clear. Ineed a straight 1 sec delay repeatedly. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I checked example code from LPCopen &amp;amp; made one example &amp;amp; its working ok now. I had put 0 in mask register&amp;nbsp; I need 1 sec int only. Is it correct way, by writing 0 to mask register:&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 OSTIMER_IRQHandler(void)
{
/* Clearn interrupt */
LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_0);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear int flag */&amp;nbsp;&amp;nbsp; 
}


main()
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) &amp;amp; (~(BIT_3));&amp;nbsp; /* disable timer */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_0);&amp;nbsp;&amp;nbsp;&amp;nbsp; /* clear any int flag */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COMPVAL&amp;nbsp;&amp;nbsp; = 72000000;&amp;nbsp;&amp;nbsp; /* 1 sec delay */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COMPVAL_H = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;MASK&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;MASK_H&amp;nbsp;&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COUNTER&amp;nbsp;&amp;nbsp; = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;COUNTER_H = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) &amp;amp; (~(BIT_2));&amp;nbsp; /* debug has no effect */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_1);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* timer will be cleared to zero on int */
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_RITIMER-&amp;gt;CTRL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ( LPC_RITIMER-&amp;gt;CTRL &amp;amp; 0x0000000F) | (BIT_3);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* enable timer */
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(RIT_IRQn);
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1);

}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. In LPCopen the name of ISr was &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 RIT_IRQHandler(void)
{
/* Clearn interrupt */
Chip_RIT_ClearInt(LPC_RITIMER);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But in startup_LPC13Uxx.s its void OSTIMER_IRQHandler(void). Why is it different or LPCopen uses updated version of file&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:55:13 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/usingg-RI-timer-in-LPC1317/m-p/524964#M7600</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:55:13Z</dc:date>
    </item>
    <item>
      <title>Re: usingg RI timer in LPC1317</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/usingg-RI-timer-in-LPC1317/m-p/524965#M7601</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by mc on Mon Aug 05 13:37:27 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi Aamir,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;When you mask a particular bit means the result of a comparison of that bit will be considered always true. As the mask register is 0 result of comparison of all bits in compare register will be taken into account. It looks correct.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:55:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/usingg-RI-timer-in-LPC1317/m-p/524965#M7601</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:55:14Z</dc:date>
    </item>
  </channel>
</rss>

