<?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のトピックenquiry on interrupt</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/enquiry-on-interrupt/m-p/525534#M8170</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jx1 on Mon Aug 05 22:39:01 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using a switch as interrupt. So whenever I turn the switch off, it will switch off my lamp.&amp;nbsp; My program does not seem to be working. How come when I turn the switch off, my lamp would not switch off? :~&amp;nbsp; Please take a look at the source code shown below.Thanks in advance!&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;
volatile uint32_t pin9_counter = 0; 
typedef enum SysState
{
System_Start&amp;nbsp;&amp;nbsp; = 0,
System_Idle,
System_Confirm,
System_Occupy,
System_Vacant
} SysState;

void PIOINT0_IRQHandler(void)
{
&amp;nbsp; uint32_t regVal;
&amp;nbsp; if (GPIOIntStatus( PORT0, 9 ))
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 1; 
&amp;nbsp; }
&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOIntClear( PORT0, 9);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
}

void DALI_Thread(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; bool dali_cmd;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t forwardFrame;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp; busy_led_state = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int lastTicks;

&amp;nbsp;&amp;nbsp;&amp;nbsp; DALI_Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
GPIOInit();


GPIOSetDir (PORT0, 9, 0 );&amp;nbsp;&amp;nbsp; 
GPIOSetInterrupt( PORT0, 9, 0, 0, 1 ); 
GPIOIntEnable( PORT0, 9);

State = System_Start;

while(1)
{
switch (State)
{
case System_Start:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 1;
DALI_Send((0xFE &amp;lt;&amp;lt; 8 ) + 0xFE); // Turn on the light 100% brightness
printf("System Start State\n");

if (pin9_counter == 0)
State = System_Idle;
&amp;nbsp;&amp;nbsp;&amp;nbsp; break;

/*========================================================================================================================*/
case System_Idle:

DALI_Send((0xFE &amp;lt;&amp;lt; 8 ) + 0x00); 
printf("System Idle State\n");



if (pin9_counter == 1)
{
State = System_Start;
break;
}&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 16:55:26 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T16:55:26Z</dc:date>
    <item>
      <title>enquiry on interrupt</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enquiry-on-interrupt/m-p/525534#M8170</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by jx1 on Mon Aug 05 22:39:01 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi everyone,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am using a switch as interrupt. So whenever I turn the switch off, it will switch off my lamp.&amp;nbsp; My program does not seem to be working. How come when I turn the switch off, my lamp would not switch off? :~&amp;nbsp; Please take a look at the source code shown below.Thanks in advance!&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;
volatile uint32_t pin9_counter = 0; 
typedef enum SysState
{
System_Start&amp;nbsp;&amp;nbsp; = 0,
System_Idle,
System_Confirm,
System_Occupy,
System_Vacant
} SysState;

void PIOINT0_IRQHandler(void)
{
&amp;nbsp; uint32_t regVal;
&amp;nbsp; if (GPIOIntStatus( PORT0, 9 ))
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 1; 
&amp;nbsp; }
&amp;nbsp; else
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOIntClear( PORT0, 9);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; return;
}

void DALI_Thread(void)
{
&amp;nbsp;&amp;nbsp;&amp;nbsp; bool dali_cmd;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint16_t forwardFrame;
&amp;nbsp;&amp;nbsp;&amp;nbsp; uint8_t&amp;nbsp; busy_led_state = 0;
&amp;nbsp;&amp;nbsp;&amp;nbsp; int lastTicks;

&amp;nbsp;&amp;nbsp;&amp;nbsp; DALI_Init();
&amp;nbsp;&amp;nbsp;&amp;nbsp; 
GPIOInit();


GPIOSetDir (PORT0, 9, 0 );&amp;nbsp;&amp;nbsp; 
GPIOSetInterrupt( PORT0, 9, 0, 0, 1 ); 
GPIOIntEnable( PORT0, 9);

State = System_Start;

while(1)
{
switch (State)
{
case System_Start:
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; pin9_counter = 1;
DALI_Send((0xFE &amp;lt;&amp;lt; 8 ) + 0xFE); // Turn on the light 100% brightness
printf("System Start State\n");

if (pin9_counter == 0)
State = System_Idle;
&amp;nbsp;&amp;nbsp;&amp;nbsp; break;

/*========================================================================================================================*/
case System_Idle:

DALI_Send((0xFE &amp;lt;&amp;lt; 8 ) + 0x00); 
printf("System Idle State\n");



if (pin9_counter == 1)
{
State = System_Start;
break;
}&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 16:55:26 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enquiry-on-interrupt/m-p/525534#M8170</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:55:26Z</dc:date>
    </item>
    <item>
      <title>Re: enquiry on interrupt</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/enquiry-on-interrupt/m-p/525535#M8171</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by lpcxpresso-support on Tue Aug 06 23:42:53 MST 2013&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Have you tried setting a breakpoint on PIOINT0_IRQHandler() and checking that you actually get the interrupt behaviour that you expect?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regards,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;LPCXPresso Support&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 16:55:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/enquiry-on-interrupt/m-p/525535#M8171</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T16:55:27Z</dc:date>
    </item>
  </channel>
</rss>

