<?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のトピックGroup GPIO input interrupt for Two pins (or more) cannot trigger well.</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513863#M396</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kitahei88 on Sun Jul 12 07:26:09 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using LPCxpresso1549.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have problem for Group GPIO interrupt setting.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to make timing logging for multiple buttons with GINT.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tested GINT for only one button , get on/off condition, It worked well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The button is pulled up and set GINT for edge trigger .GINT0 is falling edge and GINT1 is rising edge.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next , I expand the code for multiple buttons ,like below.&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;
extern "C" void GINT0_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear interrupt status
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code like LED1 toggle.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
}
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
extern "C" void GINT1_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear interrupt status
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code for LED2 toggle
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
}


void gint_init(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL0 |= (1 &amp;lt;&amp;lt; 19);&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_ENA[0] = 0x0000FFFF ; // port 0 16pins(expand)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_POL[0] = 0xFFFF0000;&amp;nbsp; // falling edge
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0) | (0&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // interrupt active, OR condition , edge trigger
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;PORT_ENA[0] = 0x0000FFFF ; // port 0 16pin(expand)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;PORT_POL[0] = 0xFFFFFFFF;&amp;nbsp; // rising edge
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0) | (0&amp;lt;&amp;lt;2) ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // interrupt active, OR condition , edge trigger
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(GINT0_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT0 interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(GINT1_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT1 interrupt 
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code cannot work well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I push one button , GINT0 interrupt was triggered, BUT press and hold the button , then press another button , interrupt was not triggered.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found that same problem was occurred for LPC43xx&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://https://www.lpcware.com/content/forum/lpc43xx-gpio-group-interrupt" rel="nofollow noopener noreferrer" target="_blank"&gt;https://www.lpcware.com/content/forum/lpc43xx-gpio-group-interrupt &lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So LPC15xx or LPC43xx cannot do such things? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I use another MCU like LPC17xx?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:08:06 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:08:06Z</dc:date>
    <item>
      <title>Group GPIO input interrupt for Two pins (or more) cannot trigger well.</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513863#M396</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kitahei88 on Sun Jul 12 07:26:09 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hello.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using LPCxpresso1549.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have problem for Group GPIO interrupt setting.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I want to make timing logging for multiple buttons with GINT.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tested GINT for only one button , get on/off condition, It worked well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;The button is pulled up and set GINT for edge trigger .GINT0 is falling edge and GINT1 is rising edge.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Next , I expand the code for multiple buttons ,like below.&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;
extern "C" void GINT0_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear interrupt status
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code like LED1 toggle.
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
}
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
extern "C" void GINT1_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear interrupt status
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Code for LED2 toggle
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
}


void gint_init(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL0 |= (1 &amp;lt;&amp;lt; 19);&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_ENA[0] = 0x0000FFFF ; // port 0 16pins(expand)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_POL[0] = 0xFFFF0000;&amp;nbsp; // falling edge
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0) | (0&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // interrupt active, OR condition , edge trigger
&amp;nbsp;&amp;nbsp;&amp;nbsp; 

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;PORT_ENA[0] = 0x0000FFFF ; // port 0 16pin(expand)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;PORT_POL[0] = 0xFFFFFFFF;&amp;nbsp; // rising edge
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT1-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0) | (0&amp;lt;&amp;lt;2) ;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // interrupt active, OR condition , edge trigger
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(GINT0_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT0 interrupt
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(GINT1_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT1 interrupt 
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This code cannot work well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I push one button , GINT0 interrupt was triggered, BUT press and hold the button , then press another button , interrupt was not triggered.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I found that same problem was occurred for LPC43xx&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="http://https://www.lpcware.com/content/forum/lpc43xx-gpio-group-interrupt" rel="nofollow noopener noreferrer" target="_blank"&gt;https://www.lpcware.com/content/forum/lpc43xx-gpio-group-interrupt &lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So LPC15xx or LPC43xx cannot do such things? &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Should I use another MCU like LPC17xx?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:08:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513863#M396</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Group GPIO input interrupt for Two pins (or more) cannot trigger well.</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513864#M397</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by stephenlind on Mon Sep 21 11:43:23 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I figured out a way to do this with the LPC1347, but in theory it should work with any of these grouped interrupt situations.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's the general problem:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. When you set the OR mask here, the first button triggers the interrupt, so the second button is not recognized as a new state (no interrupt).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. The same problem happens when you have two buttons pressed and you release one of them. Probably your POL mask is such that the interrupt only fires after *all* buttons have been released.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The solution:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;- Use only one interrupt, which fires *every time any button changes state*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;- Update the PORT_POL mask dynamically every time the button state changes.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;How does this work?&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 gint_update(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_SYSCON-&amp;gt;SYSAHBCLKCTRL0 |= (1 &amp;lt;&amp;lt; 19);&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_ENA[0] = 0x0000FFFF ; // port 0 16pins(expand)

&amp;nbsp;&amp;nbsp;&amp;nbsp; // Set the mask for the current button state (pseudocode)
&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_POL[0] = 0x00000000; // blank mask
&amp;nbsp;&amp;nbsp;&amp;nbsp; for (int i = 0; i &amp;lt; 16; i++) {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; int shouldSetFallingEdgeBit = false == buttonIsPressed(i);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;PORT_POL[0] |= (shouldSetFallingEdgeBit &amp;lt;&amp;lt; i);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }

&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0) | (0&amp;lt;&amp;lt;2);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // interrupt active, OR condition , edge trigger
&amp;nbsp;&amp;nbsp;&amp;nbsp; NVIC_EnableIRQ(GINT0_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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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 GINT0 interrupt
}

extern "C" void GINT0_IRQHandler(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_GINT0-&amp;gt;CTRL |= (1&amp;lt;&amp;lt;0);&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // clear interrupt status
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Poll the current button state, take appropriate action, store the button state for future use
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //

&amp;nbsp;&amp;nbsp;&amp;nbsp; // update the mask so that new button presses or releases will be handled
&amp;nbsp;&amp;nbsp;&amp;nbsp; gint_update();
}
&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 17:08:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513864#M397</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:08:06Z</dc:date>
    </item>
    <item>
      <title>Re: Group GPIO input interrupt for Two pins (or more) cannot trigger well.</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513865#M398</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by kitahei88 on Fri Sep 25 18:15:05 MST 2015&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your solution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have got same solution that update PORT_POL mask at every time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPC1549 have two GINT, so I set GINT0 to "Button On trigger" and GINT1 to "Button Off trigger" , like your code.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;It works well.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But the thing I really want to do is to get precise timing of multi-buttons (like keyboard logger).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This solution is very nice but its overhead that trigger timer is too long time. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So I give it up to use GINT , I add CPLD that trigger SCT input when the button conditions have changed.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Anyway, Your solution is good for using GINT.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:08:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Group-GPIO-input-interrupt-for-Two-pins-or-more-cannot-trigger/m-p/513865#M398</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:08:07Z</dc:date>
    </item>
  </channel>
</rss>

