<?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: both KBI buttons on KE06 in Kinetis Microcontrollers</title>
    <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846943#M50985</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;William&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to read the interrupt source 'before' you reset it!&lt;/P&gt;&lt;P&gt;See the uTasker code:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long ulFlags = &lt;SPAN style="color: #0000ff;"&gt;KBI0_SP&lt;/SPAN&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;&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; // read enabled interrupt flags&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KBI0_SC |= (KBI_SC_RSTKBSP | KBI_SC_KBACK);&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; // &lt;SPAN style="color: #0000ff;"&gt;clear flags and pending interrupt&lt;/SPAN&gt; (note that subsequent edge sensitive interrupts are only accepted by the KBI when all other inputs have returned to their original state)&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;...&lt;SPAN style="color: #0000ff;"&gt;now handle the flags&lt;/SPAN&gt;...&lt;/STRONG&gt;&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 11 Dec 2018 12:58:34 GMT</pubDate>
    <dc:creator>mjbcswitzerland</dc:creator>
    <dc:date>2018-12-11T12:58:34Z</dc:date>
    <item>
      <title>both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846938#M50980</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;I'm using the MCUXpresso (v10.2.1) IDE to make software for my FRDM-KE06Z board. (SDK v2.4.1)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have an application where I need to use both SW2 and SW3 to control two different actions. I've initialized them both as such:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;kbi_config_t sKBIConfig;&lt;/P&gt;&lt;P&gt;sKBIConfig.pinsEnabled = 18000000; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;//both SW2 and SW3&lt;/P&gt;&lt;P&gt;sKBIConfig.pinsEdge = 0;&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;//falling edge&lt;/P&gt;&lt;P&gt;sKBIConfig.mode = kKBI_EdgesDetect;&amp;nbsp;&amp;nbsp; //just on edges&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;KBI_Init(KBI1, &amp;amp;sKBIConfig);&lt;/P&gt;&lt;P&gt;KBI_ClearInterruptFlag(KBI1);&lt;/P&gt;&lt;P&gt;KBI_EnableInterrupts(KBI1);&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;In order to differentiate between the two buttons, I was thinking on using&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;KBI_GetSourcePinStatus(KBI1)&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;to read the source pin value in order to determine which button is being pressed. I'm doing it like this in the handler function:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&lt;P&gt;if (KBI_IsInterruptRequestDetected(KBI1)){&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;KBI_DisableInterrupts(KBI1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;&amp;nbsp; &amp;nbsp;KBI_ClearInterruptFlag(KBI1);&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (KBI_GetSourcePinStatus(KBI1) == 134217728){&amp;nbsp;&amp;nbsp; //SW3&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; //function1()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else if (KBI_GetSourcePinStatus(KBI1) == 268435456){&amp;nbsp;&amp;nbsp; //SW2&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; //function2()&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/P&gt;&lt;P&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;KBI_EnableInterrupts(KBI1); &lt;/P&gt;&lt;P&gt;}&lt;/P&gt;&lt;/BLOCKQUOTE&gt;&lt;P&gt;What I've noticed in breakpoints is that when the application first loads, if I stick to pressing only &lt;EM&gt;one&lt;/EM&gt; of the two buttons, I'll get the proper return value from the source pin status function. But if I then press the other button, that same function returns a value of 402653184 (the values of SW2 and SW3 combined). And if I go back to pressing the button that I was pressing before, I'll still get 402653184. That value will stay the same no matter which button until I reset the application.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I'm not sure whether it's a matter of a flag not getting cleared properly. According to &lt;EM&gt;fsl_kbi.h&lt;/EM&gt;, the clear interrupt flag function modifies &lt;EM&gt;base-&amp;gt;sc&lt;/EM&gt;, while the source pin status function is reading from&lt;EM&gt; base-&amp;gt;sp&lt;/EM&gt;. In addition, I was unable to find any information on how to properly "reset" the pins, as I'm not modifying arrays directly the way I'm doing it here.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there something I'm overlooking?&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Dec 2018 08:57:02 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846938#M50980</guid>
      <dc:creator>william_putnam</dc:creator>
      <dc:date>2018-12-07T08:57:02Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846939#M50981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi William&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I don't know the routines that you are using but beware that generally the KBI controller is not suitable for detecting more than one input at the same time: When a first input is active it blocks other inputs so they will not be recognised until the first is released.&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 07 Dec 2018 17:33:49 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846939#M50981</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2018-12-07T17:33:49Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846940#M50982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mark-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I should clarify. I’m not pushing both buttons at the same time. I’m pushing and releasing one button, pausing momentarily, and then pushing and releasing the other button. I’m clearing the interrupt flag, but is there something else I should be clearing as well?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-wp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 09 Dec 2018 12:06:27 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846940#M50982</guid>
      <dc:creator>william_putnam</dc:creator>
      <dc:date>2018-12-09T12:06:27Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846941#M50983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi William&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This is the code that clears the interrupt in the uTasker project's KBI driver (attached as reference or complete project available on GitHub - with KE06 and KBI simulation):&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;KBI0_SC |= (KBI_SC_RSTKBSP | KBI_SC_KBACK);&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; // clear flags and pending interrupt (note that subsequent edge sensitive interrupts are only accepted by the KBI when all other inputs have returned to their original state)&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Note that both KBACK and RSTBSP need to be written to '1' - maybe that is your problem?&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;Mark&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN&gt;Kinetis: &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis.html&lt;/A&gt;&lt;BR /&gt;Kinetis KE:&lt;BR /&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z.html&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE02Z40M.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE02Z40M.html&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE04Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE04Z.html&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE06Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE06Z.html&lt;/A&gt;&lt;BR /&gt;&lt;SPAN&gt;- &lt;/SPAN&gt;&lt;A class="jive-link-external-small" href="https://community.nxp.com/external-link.jspa?url=http%3A%2F%2Fwww.utasker.com%2Fkinetis%2FFRDM-KE15Z.html" rel="nofollow" target="_blank"&gt;http://www.utasker.com/kinetis/FRDM-KE15Z.html&lt;/A&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 10 Dec 2018 13:56:54 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846941#M50983</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2018-12-10T13:56:54Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846942#M50984</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mark-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've attached the relevant SDK header/resource files I'm using as reference. In fsl_kbi.h, the &lt;EM&gt;KBI_ClearInterruptFlag()&lt;/EM&gt; function is defined as a static inline with one command:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;base-&amp;gt;SC |= KBI_SC_KBACK_MASK;&lt;/BLOCKQUOTE&gt;&lt;P&gt;Going by your earlier suggestion, modifying this line to:&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;base-&amp;gt;SC |= (KBI_SC_RSTKBSP_MASK | KBI_SC_KBACK_MASK);&lt;/BLOCKQUOTE&gt;&lt;P&gt;will cause &lt;EM&gt;KBI_GetSourcePinStatus()&lt;/EM&gt; to return a value of 0 every time, regardless of which button is pressed.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Furthermore, &lt;STRONG&gt;KBI_SC_RSTKBSP_MASK&lt;/STRONG&gt; and &lt;STRONG&gt;KBI_SC_KBACK_MASK&lt;/STRONG&gt; evaluate respectively to 0x20U and 0x4U.&lt;/P&gt;&lt;P&gt;The former is also only used once in &lt;EM&gt;KBI_Init():&lt;/EM&gt;&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Clear any false interrupts. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scReg = KBI_SC_KBACK_MASK;&lt;BR /&gt;#if defined(FSL_FEATURE_KBI_HAS_SOURCE_PIN) &amp;amp;&amp;amp; FSL_FEATURE_KBI_HAS_SOURCE_PIN&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reset kbi sp register. */&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; scReg |= KBI_SC_RSTKBSP_MASK | KBI_SC_KBSPEN_MASK;&lt;BR /&gt;#endif&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; base-&amp;gt;SC = scReg;&lt;/BLOCKQUOTE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-wp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Dec 2018 00:52:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846942#M50984</guid>
      <dc:creator>william_putnam</dc:creator>
      <dc:date>2018-12-11T00:52:23Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846943#M50985</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;William&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need to read the interrupt source 'before' you reset it!&lt;/P&gt;&lt;P&gt;See the uTasker code:&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long ulFlags = &lt;SPAN style="color: #0000ff;"&gt;KBI0_SP&lt;/SPAN&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;&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; // read enabled interrupt flags&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; KBI0_SC |= (KBI_SC_RSTKBSP | KBI_SC_KBACK);&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; // &lt;SPAN style="color: #0000ff;"&gt;clear flags and pending interrupt&lt;/SPAN&gt; (note that subsequent edge sensitive interrupts are only accepted by the KBI when all other inputs have returned to their original state)&lt;/STRONG&gt;&lt;BR /&gt;&lt;STRONG&gt;...&lt;SPAN style="color: #0000ff;"&gt;now handle the flags&lt;/SPAN&gt;...&lt;/STRONG&gt;&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 11 Dec 2018 12:58:34 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846943#M50985</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2018-12-11T12:58:34Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846944#M50986</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Mark-&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I've tried clearing the flags after the read as you've said, and now it works. I did, however, have to edit the&amp;nbsp;&lt;EM&gt;KBI_ClearInterruptFlag()&lt;/EM&gt; function in fsl_kbi.h to&lt;/P&gt;&lt;BLOCKQUOTE class="jive_macro_quote jive-quote jive_text_macro"&gt;base-&amp;gt;SC |= (KBI_SC_RSTKBSP_MASK | KBI_SC_KBACK_MASK);&lt;/BLOCKQUOTE&gt;&lt;P&gt;in order to make it work. Thanks for your help!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;-wp&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Dec 2018 00:17:19 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846944#M50986</guid>
      <dc:creator>william_putnam</dc:creator>
      <dc:date>2018-12-12T00:17:19Z</dc:date>
    </item>
    <item>
      <title>Re: both KBI buttons on KE06</title>
      <link>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846945#M50987</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;William&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;It sound like you may be working with some code from a KE04 (or similar) since they have a slightly different keyboard controller that doesn't need the RST flag cleared. Or maybe there is another cover function to reset the other flag(?)&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If in doubt just check the uTasker code since it is an encapsulated solution proven on all types.&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;Mark&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 12 Dec 2018 02:27:46 GMT</pubDate>
      <guid>https://community.nxp.com/t5/Kinetis-Microcontrollers/both-KBI-buttons-on-KE06/m-p/846945#M50987</guid>
      <dc:creator>mjbcswitzerland</dc:creator>
      <dc:date>2018-12-12T02:27:46Z</dc:date>
    </item>
  </channel>
</rss>

