<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>gpiote interrupt resolution</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/27346/gpiote-interrupt-resolution</link><description>Can NRF52 gpiote detects pulse width nearly 250ns? We use a AFE sensor that notifies MCU it&amp;#39;s data by sending a low to high pulse. The pulse width is about 250ns which is very small, I set the gpio triggering interrupt from low to high,but NRF52 can&amp;#39;t</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 21 Nov 2017 08:37:36 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/27346/gpiote-interrupt-resolution" /><item><title>RE: gpiote interrupt resolution</title><link>https://devzone.nordicsemi.com/thread/107999?ContentTypeID=1</link><pubDate>Tue, 21 Nov 2017 08:37:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2be507e7-9be6-4b2e-9f67-a8f84631e5ef</guid><dc:creator>kxJiang</dc:creator><description>&lt;p&gt;Hi,Martin, Thanks for your reply. I added your code after my gpiote configuration code, then I found the problem.since &lt;code&gt;nrf_drv_gpiote_init()&lt;/code&gt;was not called, &lt;code&gt;nrf_drv_gpiote_in_init()&lt;/code&gt;returned on &lt;code&gt;pin_in_use_by_gpiote&lt;/code&gt;checking. It&amp;#39;s my fault. Now it&amp;#39;s working. Thanks again!&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: gpiote interrupt resolution</title><link>https://devzone.nordicsemi.com/thread/107998?ContentTypeID=1</link><pubDate>Mon, 20 Nov 2017 15:52:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bbe38775-2695-48ce-b011-c6e320661c82</guid><dc:creator>MartinBL</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Have you looked at the pulses with an oscilloscope and made sure they go high enough to register as a logic high on the nRF52? The pulse must cross Vdd * 0.7.&lt;/p&gt;
&lt;p&gt;I used an nRF52 DK and this code to measure pulses shorter than 250ns:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void GPIOTE_IRQHandler(void)
{
    nrf_gpio_pin_toggle(LED_1);
    NRF_GPIOTE-&amp;gt;EVENTS_IN[0] = 0;
    NVIC_ClearPendingIRQ(GPIOTE_IRQn);
}

int main(void)
{
    LEDS_CONFIGURE(LEDS_MASK);
    LEDS_OFF(LEDS_MASK);
    nrf_gpio_cfg_input(BUTTON_1, NRF_GPIO_PIN_PULLUP);

    NRF_GPIOTE-&amp;gt;INTENSET = 1;
    NRF_GPIOTE-&amp;gt;CONFIG[0] = GPIOTE_CONFIG_MODE_Event &amp;lt;&amp;lt; GPIOTE_CONFIG_MODE_Pos | 
             3 &amp;lt;&amp;lt; GPIOTE_CONFIG_PSEL_Pos |
             GPIOTE_CONFIG_POLARITY_HiToLo &amp;lt;&amp;lt; GPIOTE_CONFIG_POLARITY_Pos;
    
    NVIC_EnableIRQ(GPIOTE_IRQn);

    while (true)
    {
        __WFE();
    }
}
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;As long as you cross Vdd * 0.7, 250ns shouldn&amp;#39;t be a problem.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>