<?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>PPI</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/57393/ppi</link><description>Hi, 
 I&amp;#39;m trying to do something (seemingly) VERY simple: 
 I want to increment the count in Timer 2 every time a GPIO pin (17) goes from high to low, without using the CPU and / or interrupts... 
 I am using S110; SDK 7.2.0 (I know, old, but quite sufficient</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Mon, 10 Feb 2020 12:17:25 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/57393/ppi" /><item><title>RE: PPI</title><link>https://devzone.nordicsemi.com/thread/233501?ContentTypeID=1</link><pubDate>Mon, 10 Feb 2020 12:17:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:1a27d8e3-2997-4a29-9279-87dccb6eb674</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;You need to trigger a capture task to get the value of the TIMER.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;If you trigger the CAPTURE[1] task the value of the TIMER will be loaded into the CC[1] register.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;The use of a Capture task enables real-time periodic sampling of the TIMER in counter mode. &lt;br /&gt;F. ex. if you want to know how many times a pin has gone from low to high position every 625µs(arbitrary number) you can set up another TIMER to trigger the Capture task every 625µs. You&amp;#39;re then guaranteed that the value read by the CPU is correct regardless of its load at the time, as long as you read the register before the next 625µs period that is.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: PPI</title><link>https://devzone.nordicsemi.com/thread/233335?ContentTypeID=1</link><pubDate>Fri, 07 Feb 2020 15:00:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3ea6ec46-5e6a-459e-8734-2f4488c1c3db</guid><dc:creator>JayPRab</dc:creator><description>&lt;p&gt;Hi, Haakonsh,&lt;/p&gt;
&lt;p&gt;You&amp;#39;re right, but that didn&amp;#39;t help to get a count increase in the Timer2 TASKS_COUNT register...&lt;/p&gt;
&lt;p&gt;Am I not enabling something?&lt;/p&gt;
&lt;p&gt;I DO get a notification in the GPIOTE EVENTS_IN[0] register when I twiddle the input pin...&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: PPI</title><link>https://devzone.nordicsemi.com/thread/232756?ContentTypeID=1</link><pubDate>Wed, 05 Feb 2020 09:00:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:a5fc41d3-b338-49a6-aa29-fe9ac9540a81</guid><dc:creator>haakonsh</dc:creator><description>&lt;p&gt;&lt;span&gt;NRF_PPI-&amp;gt;CH[VIBE_CHANNEL_NUMBER].EEP&amp;nbsp; = (uint32_t)&amp;amp;NRF_GPIOTE-&amp;gt;EVENTS_IN&lt;br /&gt;&lt;br /&gt;I think it should be:&lt;br /&gt;&lt;br /&gt;NRF_PPI-&amp;gt;CH[VIBE_CHANNEL_NUMBER].EEP&amp;nbsp; = (uint32_t)&amp;amp;NRF_GPIOTE-&amp;gt;IN[VIBE_CHANNEL_NUMBER]&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;span&gt;Also, you need to make sure that the channel number for both GPIOTE and PPI is actually available. I believe the PPI driver has a function for finding a free channel at run-time, at least in SDK 9:&amp;nbsp;&lt;a title="nrf_drv_ppi_channel_alloc" href="https://infocenter.nordicsemi.com/topic/com.nordic.infocenter.sdk51.v9.0.0/group__lib__driver__ppi.html#gacf7e1f7c17901ec68a1307a5e536cffc"&gt;nrf_drv_ppi_channel_alloc&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>