<?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 Re: [LPC1769] Problems with GPIO Interrupt in LPCXpresso IDE</title>
    <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571657#M20701</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nykelaz on Sat May 25 21:50:02 MST 2013&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;Doesn't look too wrong &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;BR /&gt;&lt;BR /&gt;A lot of your code isn't necessary, but a reduced version shouldn't behave different.&lt;BR /&gt;&lt;BR /&gt;So I think you have a hardware problem and you should scope / measure P2.5 / P2.6.&lt;BR /&gt;&lt;BR /&gt;This version is working here in a Standard LPCXpresso Project.&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "LPC17xx.h"

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

__CRP const unsigned int CRP_WORD = CRP_NO_CRP;

void EINT3_IRQHandler(void)
{
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;5))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;5);
&amp;nbsp; printf("Interrupt P2.5\n");
 }
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;6))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;6);
&amp;nbsp; printf("Interrupt P2.6\n");
 }
}

int main(void)
{
 volatile static int i = 0 ;
 printf("GPIO_Interrupt Sample\n");
 //Enable interrupt
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;5);
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;6);
 NVIC_EnableIRQ(EINT3_IRQn);
 while(1)
 {
&amp;nbsp; i++ ;
 }
 return 0 ;
}
&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;Thanks for your response. It's good to know that the code is correct *phew* I'll do a check on the hardware then &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On a side note, I have problems enabling the interrupt to be triggered on both edges on the same pin. For my case, the LPC recognizes only either the rising or falling edge but not both. I understood from the manual the 1769 should be able to accept interrupt on rising, falling or both edges. Any advice on that?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Jun 2016 02:23:34 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-16T02:23:34Z</dc:date>
    <item>
      <title>[LPC1769] Problems with GPIO Interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571655#M20699</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nykelaz on Sat May 25 20:29:04 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi all,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have problems with the GPIO interrupt and hope to get some some pointers. I am using GPIO pins P2.5 and P2.6 for external interrupt (Rising edge). Below is a truncated version of my code:&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 EINT3_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((LPC_GPIOINT-&amp;gt;IO2IntStatR&amp;gt;&amp;gt;5)&amp;amp; 0x1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
LPC_GPIOINT-&amp;gt;IO2IntClr=1&amp;lt;&amp;lt;5;
printf("Interrupt p2.5 ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; if ((LPC_GPIOINT-&amp;gt;IO2IntStatR&amp;gt;&amp;gt;6)&amp;amp; 0x1)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=1&amp;lt;&amp;lt;6;
&amp;nbsp;&amp;nbsp;&amp;nbsp; printf("Interrupt p2.6 ");
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
}

int main (void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINSEL_CFG_Type PinCfg;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initialize P2.5
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Funcnum = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.OpenDrain = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Pinmode = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Portnum = 2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Pinnum = 5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINSEL_ConfigPin(&amp;amp;PinCfg);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Initialize P2.6
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Funcnum = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.OpenDrain = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Pinmode = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Portnum = 2;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PinCfg.Pinnum = 6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PINSEL_ConfigPin(&amp;amp;PinCfg);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Set as input&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO_SetDir(2, 1&amp;lt;&amp;lt;5, 0);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIO_SetDir(2, 1&amp;lt;&amp;lt;6, 0);

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //Enable interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntEnR |=1&amp;lt;&amp;lt;5;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntEnR |=1&amp;lt;&amp;lt;6;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(EINT3_IRQn);
}&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, when I trigger an interrupt on either one of the pins, both interrupts will be activated. It will print "Interrupt p2.5 Interrupt p2.6" regardless of which interrupt is triggered.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Is there anything wrong with my configuration?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:23:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571655#M20699</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:23:33Z</dc:date>
    </item>
    <item>
      <title>Re: [LPC1769] Problems with GPIO Interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571656#M20700</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 Sat May 25 21:14:46 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: nykelaz&lt;/STRONG&gt;&lt;BR /&gt;Is there anything wrong with my configuration?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Doesn't look too wrong &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;A lot of your code isn't necessary, but a reduced version shouldn't behave different.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I think you have a hardware problem and you should scope / measure P2.5 / P2.6.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This version is working here in a Standard LPCXpresso Project.&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "LPC17xx.h"

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

__CRP const unsigned int CRP_WORD = CRP_NO_CRP;

void EINT3_IRQHandler(void)
{
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;5))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;5);
&amp;nbsp; printf("Interrupt P2.5\n");
 }
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;6))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;6);
&amp;nbsp; printf("Interrupt P2.6\n");
 }
}

int main(void)
{
 volatile static int i = 0 ;
 printf("GPIO_Interrupt Sample\n");
 //Enable interrupt
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;5);
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;6);
 NVIC_EnableIRQ(EINT3_IRQn);
 while(1)
 {
&amp;nbsp; i++ ;
 }
 return 0 ;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:23:33 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571656#M20700</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:23:33Z</dc:date>
    </item>
    <item>
      <title>Re: [LPC1769] Problems with GPIO Interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571657#M20701</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by nykelaz on Sat May 25 21:50:02 MST 2013&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;Doesn't look too wrong &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;BR /&gt;&lt;BR /&gt;A lot of your code isn't necessary, but a reduced version shouldn't behave different.&lt;BR /&gt;&lt;BR /&gt;So I think you have a hardware problem and you should scope / measure P2.5 / P2.6.&lt;BR /&gt;&lt;BR /&gt;This version is working here in a Standard LPCXpresso Project.&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;
#include "LPC17xx.h"

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

__CRP const unsigned int CRP_WORD = CRP_NO_CRP;

void EINT3_IRQHandler(void)
{
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;5))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;5);
&amp;nbsp; printf("Interrupt P2.5\n");
 }
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;6))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;6);
&amp;nbsp; printf("Interrupt P2.6\n");
 }
}

int main(void)
{
 volatile static int i = 0 ;
 printf("GPIO_Interrupt Sample\n");
 //Enable interrupt
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;5);
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;6);
 NVIC_EnableIRQ(EINT3_IRQn);
 while(1)
 {
&amp;nbsp; i++ ;
 }
 return 0 ;
}
&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;Thanks for your response. It's good to know that the code is correct *phew* I'll do a check on the hardware then &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;On a side note, I have problems enabling the interrupt to be triggered on both edges on the same pin. For my case, the LPC recognizes only either the rising or falling edge but not both. I understood from the manual the 1769 should be able to accept interrupt on rising, falling or both edges. Any advice on that?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:23:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571657#M20701</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:23:34Z</dc:date>
    </item>
    <item>
      <title>Re: [LPC1769] Problems with GPIO Interrupt</title>
      <link>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571658#M20702</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 Sat May 25 22:21:50 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: nykelaz&lt;/STRONG&gt;&lt;BR /&gt;I understood from the manual the 1769 should be able to accept interrupt on rising, falling or both edges. Any advice on that?&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm not sure how good this is working with fast signals. My sample is working without problems with 1kHz. Scope and 'cycle counter' are both showing nothing unusual &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;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;#include "LPC17xx.h"

#include &amp;lt;cr_section_macros.h&amp;gt;
#include &amp;lt;NXP/crp.h&amp;gt;
#include &amp;lt;stdio.h&amp;gt;

__CRP const unsigned int CRP_WORD = CRP_NO_CRP ;

void EINT3_IRQHandler(void)
{
 if(LPC_GPIOINT-&amp;gt;IO2IntStatR &amp;amp; (1&amp;lt;&amp;lt;6))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;6);
&amp;nbsp; printf("Rising P2.6\n");
 }
 if(LPC_GPIOINT-&amp;gt;IO2IntStatF &amp;amp; (1&amp;lt;&amp;lt;6))
 {
&amp;nbsp; LPC_GPIOINT-&amp;gt;IO2IntClr=(1&amp;lt;&amp;lt;6);
&amp;nbsp; printf("Falling P2.6\n");
 }
}

int main(void)
{
 volatile static int i = 0 ;
 printf("GPIO Rising / Falling Interrupt\n");
 //Enable interrupt
 LPC_GPIOINT-&amp;gt;IO2IntEnR |=(1&amp;lt;&amp;lt;6);
 LPC_GPIOINT-&amp;gt;IO2IntEnF |=(1&amp;lt;&amp;lt;6);
 NVIC_EnableIRQ(EINT3_IRQn);
 while(1)
 {
&amp;nbsp; i++ ;
 }
 return 0 ;
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Jun 2016 02:23:35 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPCXpresso-IDE/LPC1769-Problems-with-GPIO-Interrupt/m-p/571658#M20702</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-16T02:23:35Z</dc:date>
    </item>
  </channel>
</rss>

