<?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>How do I interface external IO pins when app_button is used?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/8183/how-do-i-interface-external-io-pins-when-app_button-is-used</link><description>I would like to support app_button, however I need to configure a pin as NOPULL and trigger on a low to high transition without debouncing. 
 I don&amp;#39;t see a way this can co-exist with the app_button modile. I tried using nrf_drv_gpiote but was confused</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Thu, 16 Jul 2015 13:48:52 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/8183/how-do-i-interface-external-io-pins-when-app_button-is-used" /><item><title>RE: How do I interface external IO pins when app_button is used?</title><link>https://devzone.nordicsemi.com/thread/29418?ContentTypeID=1</link><pubDate>Thu, 16 Jul 2015 13:48:52 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:55653ca3-9c8a-4e31-aa4d-dfaeed3b6c89</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Yes, override before calling the app_button_init function.
If you have energy to experiment more, then you can even reduce debounce_time for that specific pin
in app_button.c-&amp;gt;gpiote_event_handler
replace&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;err_code = app_timer_start(m_detection_delay_timer_id, m_detection_delay, NULL);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;with&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  if(external_pin) err_code = app_timer_start(m_detection_delay_timer_id, 5, NULL);
  else err_code = app_timer_start(m_detection_delay_timer_id, m_detection_delay, NULL);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Then you interrupt needs to stay active just for 5 ticks ...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I interface external IO pins when app_button is used?</title><link>https://devzone.nordicsemi.com/thread/29417?ContentTypeID=1</link><pubDate>Thu, 16 Jul 2015 13:34:18 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9b827257-b57a-4dbb-9638-0a60a9586948</guid><dc:creator>syntroniks</dc:creator><description>&lt;p&gt;Thanks Aryan and thank you for helping these forums. Can you confirm that this means modifying bsp.c in the RTE folder as opposed taking a weak reference to buttons and overriding it in main.c?&lt;/p&gt;
&lt;p&gt;Thankfully my input signal is 100ms long so it will work with the debouncing logic.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: How do I interface external IO pins when app_button is used?</title><link>https://devzone.nordicsemi.com/thread/29416?ContentTypeID=1</link><pubDate>Thu, 16 Jul 2015 07:31:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:419dbb8b-14bd-470a-98ac-dfd8bcf7668c</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;You can configure pin with different trigger level and different pulls with app_buttons
static app_button_cfg_t buttons[] =
{
{BSP_BUTTON_0, APP_BUTTON_ACTIVE_HIGH, NRF_GPIO_PIN_NOPULL, button0_event_handler},
{BSP_BUTTON_1, APP_BUTTON_ACTIVE_LOW, NRF_GPIO_PIN_PULL, button1_event_handler},
};&lt;/p&gt;
&lt;p&gt;Else your solution should work well if you use the merge fix.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>