<?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>Kinetis MicrocontrollersのトピックRe: Processor Expert External Interrupt Component</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528116#M32789</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;Which "generated code" do you want to understand?&amp;nbsp; Do you mean PE_ISR(Cpu_ivINT_PORTB)?&lt;/P&gt;&lt;P&gt;The ISF bit in PORTx_PCRn is used to determine which GPIO caused the interrupt of Port B. You can see the&amp;nbsp; code(pink line) in attached image at my last reply. If the interrupt is caused by ExtIntLdd2_Interrupt, the code will still run into ExtIntLdd1_Interrupt to check the pin interrupt flag(ISF of PORTx_PCRn) first. And then run into ExtIntLdd2_Interrupt to chenk the the second pin interrupt flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still need to have Processor Expert assign two different interrupt vectors for the two components? The Port B has only one interrupt vector, all the GPIOs in Port B share this interrupt vector. So if you still need two different interrupt vectors for the two components, you need to use two GPIOs in different Port.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Fri, 19 Aug 2016 03:02:25 GMT</pubDate>
    <dc:creator>Robin_Shen</dc:creator>
    <dc:date>2016-08-19T03:02:25Z</dc:date>
    <item>
      <title>Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528111#M32784</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The processor I am using is the MK22FN256VLH12. A GPIO bit in a Port is configured&lt;/P&gt;&lt;P&gt;as an Input which will interrupt on both edges of the signal.The ExtInt component is&lt;/P&gt;&lt;P&gt;used to configure the interrupts. An ExtInt_Ldd has been built with an Initialization&lt;/P&gt;&lt;P&gt;function, the Interrupt handler, and the GetVal function. I use the GetVal to determine&lt;/P&gt;&lt;P&gt;which edge caused the interrupt.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;First the Initialization function in ExtInt_LDD is never called, is this correct?&lt;/P&gt;&lt;P&gt;My main problem is the first time that an interrupt is generated my ISR is entered&lt;/P&gt;&lt;P&gt;at the function's entry point. However, the next interrupt results in the ISR being entered&lt;/P&gt;&lt;P&gt;in the middle of the function.Is this a result of the data structure not being initialized?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;What can I do to make this work correctly?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I must have had a brain freeze. What I need to do is have 1 ISR which checks which pin caused&lt;/P&gt;&lt;P&gt;the interrupt and processes accordingly. I apologize for wasted time.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;SORRY - The problem description is incorrect. My reply to Robin describes the problem that I am having.&lt;/P&gt;&lt;P&gt;&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; I was relying on Breakpoints that did not trigger.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 15 Aug 2016 20:06:17 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528111#M32784</guid>
      <dc:creator>richardfox75</dc:creator>
      <dc:date>2016-08-15T20:06:17Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528112#M32785</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;The initialization function is called in my project.(See the attached image)&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="ExtIntLdd1_Init.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/2915i75693531633A2526/image-size/large?v=v2&amp;amp;px=999" role="button" title="ExtIntLdd1_Init.png" alt="ExtIntLdd1_Init.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;I'm not very clear about: "My main problem is the first time that an interrupt is generated my ISR is entered at the function's entry point. However, the next interrupt results in the ISR being entered in the middle of the function."&lt;/P&gt;&lt;P&gt;Could you please attach these two images?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Aug 2016 08:12:01 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528112#M32785</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2016-08-16T08:12:01Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528113#M32786</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Sorry, the problem description in my post is incorrect. I went through the generated code this&lt;/P&gt;&lt;P&gt;morning, and see what is actually happening.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I am using 2 GPIOs in Port B to determine if a switch has been pressed. The first GPIO is for&lt;/P&gt;&lt;P&gt;on row in the switch matrix. The second GPIO is for another row (a different set of switches).&lt;/P&gt;&lt;P&gt;I have both GPIOs configured to interrupt on both edges of the switch press. The two GPIOs&lt;/P&gt;&lt;P&gt;should be independent. The first GPIO uses ExtLdd2, while the second one uses ExtLdd3.&lt;/P&gt;&lt;P&gt;I expected that there would be two distinct ISRs for the Ports. However, the CPU component&lt;/P&gt;&lt;P&gt;has set up both of the external interrupt components as one.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PE_ISR(Cpu_ivINT_PORTB)&lt;/P&gt;&lt;P&gt;{&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ExtIntLdd2_Interrupt();&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp; ExtIntLdd3_Interrupt();&lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;P&gt;So the first of my ISRs falls into the second ISR.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Somehow I need to have Processor Expert assign two different interrupt vectors for the two&lt;/P&gt;&lt;P&gt;components.Probably something that I misconfigured.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Richard&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 16 Aug 2016 13:42:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528113#M32786</guid>
      <dc:creator>richardfox75</dc:creator>
      <dc:date>2016-08-16T13:42:12Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528114#M32787</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;All Ports have their own ISR(interrupt vector). If you need to have Processor Expert assign two different interrupt vectors for the two components, please use two different Ports.(for example:one GPIO in Port B and the other GPIO in Port C)&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="PORTB.png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/2287i5120EF42E23D614C/image-size/large?v=v2&amp;amp;px=999" role="button" title="PORTB.png" alt="PORTB.png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you using 2 GPIOs in Port B, the code will "Check the pin interrupt flag of the shared interrupt" to determine which switch caused the PE_ISR(Cpu_ivINT_PORTB).&lt;/P&gt;&lt;P&gt;&lt;span class="lia-inline-image-display-wrapper" image-alt="PE_ISR(Cpu_ivINT_PORTB).png"&gt;&lt;img src="https://community.nxp.com/t5/image/serverpage/image-id/2383iA9911D8534312F49/image-size/large?v=v2&amp;amp;px=999" role="button" title="PE_ISR(Cpu_ivINT_PORTB).png" alt="PE_ISR(Cpu_ivINT_PORTB).png" /&gt;&lt;/span&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;P&gt;Note: If this post answers your question, please click the Correct Answer button. Thank you!&lt;/P&gt;&lt;P&gt;-----------------------------------------------------------------------------------------------------------------------&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Aug 2016 07:38:41 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528114#M32787</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2016-08-17T07:38:41Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528115#M32788</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks for your input. I have the code working. I just needed to &lt;/P&gt;&lt;P&gt;understand&lt;/P&gt;&lt;P&gt;how the generated code functioned.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dick Fox&lt;/P&gt;&lt;P&gt;Firmware  Engineer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NATIONAL CONTROLS CORPORATION BUSINESS UNIT&lt;/P&gt;&lt;P&gt;INSTRUMENTATION AND SPECIALTY CONTROLS DIVISION&lt;/P&gt;&lt;P&gt;1725 Western Dr | West Chicago, IL 60185 | &lt;A href="http://www.ametekncc.com" target="test_blank"&gt;http://www.ametekncc.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Phone: (630)621-3118 | email: Dick Fox@ametek.com&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 17 Aug 2016 12:14:57 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528115#M32788</guid>
      <dc:creator>richardfox75</dc:creator>
      <dc:date>2016-08-17T12:14:57Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528116#M32789</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Richard,&lt;/P&gt;&lt;P&gt;Which "generated code" do you want to understand?&amp;nbsp; Do you mean PE_ISR(Cpu_ivINT_PORTB)?&lt;/P&gt;&lt;P&gt;The ISF bit in PORTx_PCRn is used to determine which GPIO caused the interrupt of Port B. You can see the&amp;nbsp; code(pink line) in attached image at my last reply. If the interrupt is caused by ExtIntLdd2_Interrupt, the code will still run into ExtIntLdd1_Interrupt to check the pin interrupt flag(ISF of PORTx_PCRn) first. And then run into ExtIntLdd2_Interrupt to chenk the the second pin interrupt flag.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you still need to have Processor Expert assign two different interrupt vectors for the two components? The Port B has only one interrupt vector, all the GPIOs in Port B share this interrupt vector. So if you still need two different interrupt vectors for the two components, you need to use two GPIOs in different Port.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Best Regards,&lt;/P&gt;&lt;P&gt;Robin&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2016 03:02:25 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528116#M32789</guid>
      <dc:creator>Robin_Shen</dc:creator>
      <dc:date>2016-08-19T03:02:25Z</dc:date>
    </item>
    <item>
      <title>Re: Processor Expert External Interrupt Component</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528117#M32790</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Robin,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't need help understanding the code. After I looked at the&lt;/P&gt;&lt;P&gt;code I understood how it worked. My program is working. Thanks&lt;/P&gt;&lt;P&gt;for your assistance.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Dick Fox&lt;/P&gt;&lt;P&gt;Firmware  Engineer&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;NATIONAL CONTROLS CORPORATION BUSINESS UNIT&lt;/P&gt;&lt;P&gt;INSTRUMENTATION AND SPECIALTY CONTROLS DIVISION&lt;/P&gt;&lt;P&gt;1725 Western Dr | West Chicago, IL 60185 | &lt;A href="http://www.ametekncc.com" target="test_blank"&gt;http://www.ametekncc.com&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Phone: (630)621-3118 | email: Dick Fox@ametek.com&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 19 Aug 2016 12:36:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/Processor-Expert-External-Interrupt-Component/m-p/528117#M32790</guid>
      <dc:creator>richardfox75</dc:creator>
      <dc:date>2016-08-19T12:36:34Z</dc:date>
    </item>
  </channel>
</rss>

