<?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>&amp;quot;Event endpoints are only able to recognize addresses from the EVENT group&amp;quot; Can you please explain it properly?</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/2900/event-endpoints-are-only-able-to-recognize-addresses-from-the-event-group-can-you-please-explain-it-properly</link><description>I am not understanding that what should be event pointer and task pointer address. Can you please explain it with some example in detail.</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Wed, 25 Jun 2014 09:04:45 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/2900/event-endpoints-are-only-able-to-recognize-addresses-from-the-event-group-can-you-please-explain-it-properly" /><item><title>RE: "Event endpoints are only able to recognize addresses from the EVENT group" Can you please explain it properly?</title><link>https://devzone.nordicsemi.com/thread/11051?ContentTypeID=1</link><pubDate>Wed, 25 Jun 2014 09:04:45 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fca5f86d-29cf-4ccc-819e-cc79153edb47</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;This is a function that handles configuration of PPI channels when the softdevice is enabled and disabled. Since the softdevice uses the PPI, it is a restricted peripheral and should be accessed via the nrf_soc library when it&amp;#39;s enabled.&lt;/p&gt;
&lt;p&gt;You can call this function similar to this:
&amp;quot;ppi_enable_channel(MY_PPI_CHANNEL, &amp;amp;NRF_TIMER0-&amp;gt;EVENTS_COMPARE[0], &amp;amp;NRF_ADC-&amp;gt;TASKS_START);&amp;quot;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "Event endpoints are only able to recognize addresses from the EVENT group" Can you please explain it properly?</title><link>https://devzone.nordicsemi.com/thread/11050?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2014 13:37:28 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8d531d25-e04f-42cf-80c8-a5fce373a519</guid><dc:creator>krishna</dc:creator><description>&lt;p&gt;Thank you very much for your answer.
But in this below code what will be *event_ptr and *task_ptr?&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;void ppi_enable_channel(uint32_t ch_num, volatile uint32_t *event_ptr, volatile uint32_t *task_ptr)
{
    if(ch_num &amp;gt;= 16)
    {
        return;
    }
    else
    {
#if(USE_WITH_SOFTDEVICE == 1)
        sd_ppi_channel_assign(ch_num, event_ptr, task_ptr);
        sd_ppi_channel_enable_set(1 &amp;lt;&amp;lt; ch_num);
#else
        // Otherwise we configure the channel and return the channel number
        NRF_PPI-&amp;gt;CH[ch_num].EEP = (uint32_t)event_ptr;
        NRF_PPI-&amp;gt;CH[ch_num].TEP = (uint32_t)task_ptr;
        NRF_PPI-&amp;gt;CHENSET = (1 &amp;lt;&amp;lt; ch_num);
#endif
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;em&gt;moderator edit:&lt;/em&gt; use of code tags&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: "Event endpoints are only able to recognize addresses from the EVENT group" Can you please explain it properly?</title><link>https://devzone.nordicsemi.com/thread/11049?ContentTypeID=1</link><pubDate>Tue, 24 Jun 2014 13:32:24 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9fcba1e4-f861-4450-a490-45b8ead6aad4</guid><dc:creator>H&amp;#229;kon Alseth</dc:creator><description>&lt;p&gt;Since you&amp;#39;ve quoted from the PPI chapter in the reference manual, you&amp;#39;re asking about how the PPI event endpoints (NRF_PPI-&amp;gt;CH[x].EEP) and task endpoints (NRF_PPI-&amp;gt;CH[x].TEP) works.
The Programmable Peripheral Interconnect (short: PPI) is a peripheral that takes in a event and then starts a task, without involving the MCU (other than the initial configuration)&lt;/p&gt;
&lt;p&gt;A PPI event endpoint register must hold the address of an valid event given by the nRF51x22.
This can be any event generated by any of the peripherals. For instance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NRF_PPI-&amp;gt;CH[0].EEP = (uint32_t)&amp;amp;NRF_TIMER0-&amp;gt;EVENTS_COMPARE[0];
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In order for the above event (in this case, timer0&amp;#39;s compare[0]) to actually have an effect through the PPI, you must also configure the Task End Point (TEP). The address that you give into the TEP must be a valid TASKS_* address, for instance:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;NRF_PPI-&amp;gt;CH[0].TEP = (uint32_t)&amp;amp;NRF_ADC-&amp;gt;TASKS_START;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Now, given that the two peripherals that you&amp;#39;ve connected through the PPI are configured correctly, and the specific PPI channel is enabled (NRF_PPI-&amp;gt;CHENSET = PPI_CHENSET_CH0_Enabled &amp;lt;&amp;lt; PPI_CHENSET_CH0_Pos;), the ADC will do a conversion each time the NRF_TIMER-&amp;gt;EVENTS_COMPARE[0] occurs.&lt;/p&gt;
&lt;p&gt;I would recommend that you look at the PPI-example in the SDK, as well as the gpiote_example, as it also uses the PPI. If you look at this example on github, which will create a 8 MHz pulse on a GPIO, it also uses the PPI to make this happen:
&lt;a href="https://github.com/NordicSemiconductor/nrf51-8-mhz-gpio-clock/blob/master/main.c"&gt;github.com/.../main.c&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>