<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://test-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>Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/f/nordic-q-a/85130/using-ppi-trace-with-timer0</link><description>Hi, 
 
 I tried to implement PPI for a very timing sensitive application. The sample PPI_trace uses the RTC but it is too slow for my application so I&amp;#39;d want ot use timer0 but it seems its instances are in nrfx dependencies. Is there a clean way to use</description><dc:language>en-US</dc:language><generator>Telligent Community 13 Non-Production</generator><lastBuildDate>Thu, 19 May 2022 12:59:22 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://test-devzone.nordicsemi.com/f/nordic-q-a/85130/using-ppi-trace-with-timer0" /><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/368627?ContentTypeID=1</link><pubDate>Thu, 19 May 2022 12:59:22 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:61d3ab58-8172-40cd-8920-747e0016d724</guid><dc:creator>user107732</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I was away on vacation and hence couldn&amp;#39;t get back to you sooner.. I can see that you have managed to make the IO&amp;#39;s work. What is the current update of this issue.?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/359549?ContentTypeID=1</link><pubDate>Wed, 23 Mar 2022 09:53:31 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7ab33e15-60e1-49ac-91e3-2ad58c93d465</guid><dc:creator>user105832</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;It has been a while and I managed to make my IOs work. I just used DT_NODELABAL instead of DT_ALIAS, dont know why it works and at this point I am too afraid to ask.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Meanwhile, I tried your suggestion but on my main application the counter start makes it restart and on the exemple that I modified, there is no more output signal.&lt;/p&gt;
&lt;p&gt;Here is the modified sample :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/*
 * Copyright (c) 2019 Nordic Semiconductor ASA
 *
 * SPDX-License-Identifier: LicenseRef-Nordic-5-Clause
 */

#include &amp;lt;zephyr.h&amp;gt;
#include &amp;lt;debug/ppi_trace.h&amp;gt;
#include &amp;lt;drivers/counter.h&amp;gt;
#include &amp;lt;hal/nrf_rtc.h&amp;gt;
#include &amp;lt;hal/nrf_clock.h&amp;gt;
#include &amp;lt;device.h&amp;gt;
#include &amp;lt;logging/log.h&amp;gt;
#include &amp;quot;hal/nrf_timer.h&amp;quot;

LOG_MODULE_REGISTER(app);

#define ALARM_PERIOD_US 50000

#if IS_ENABLED(CONFIG_USE_TIMER2)
#define TIMER       NRF_TIMER2
#define TIMER_LABEL DT_LABEL(DT_NODELABEL(timer2))
#else
#define TIMER       NRF_TIMER3
#define TIMER_LABEL DT_LABEL(DT_NODELABEL(timer3))
#endif

static void alarm_callback(const struct device *dev, uint8_t chan_id, uint32_t ticks,
			   void *user_data);

static struct counter_alarm_cfg alarm_cfg = {
	.callback = alarm_callback,
	.flags = COUNTER_ALARM_CFG_ABSOLUTE,
};

static void ppi_trace_pin_setup(uint32_t pin, uint32_t evt)
{
	void *handle;

	handle = ppi_trace_config(pin, evt);
	__ASSERT(handle != NULL,
		&amp;quot;Failed to initialize trace pin, no PPI or GPIOTE resources?&amp;quot;);

	ppi_trace_enable(handle);
}

static void ppi_trace_setup(void)
{
	ppi_trace_pin_setup(3,
		nrf_timer_event_address_get(TIMER, NRF_TIMER_EVENT_COMPARE0));

	LOG_INF(&amp;quot;PPI trace setup done.&amp;quot;);
}

static void alarm_callback(const struct device *dev, uint8_t chan_id,
			   uint32_t ticks, void *user_data)
{
	int err;
	uint32_t alarm_cnt = (uint32_t)user_data + 1;

	alarm_cfg.ticks = ticks + counter_us_to_ticks(dev, ALARM_PERIOD_US);
	alarm_cfg.user_data = (void *)alarm_cnt;

	err = counter_set_channel_alarm(dev, 0, &amp;amp;alarm_cfg);
	__ASSERT_NO_MSG(err == 0);
	(void)err;
}

static void counter_setup(void)
{
	int err;
	const struct device *dev = device_get_binding(TIMER_LABEL);

	__ASSERT(dev, &amp;quot;Sample cannot run on this board.&amp;quot;);

	alarm_cfg.ticks = counter_us_to_ticks(dev, ALARM_PERIOD_US);
	err = counter_set_channel_alarm(dev, 0, &amp;amp;alarm_cfg);
	__ASSERT_NO_MSG(err == 0);

	err = counter_start(dev);
	__ASSERT_NO_MSG(err == 0);
}

void main(void)
{
	ppi_trace_setup();
	counter_setup();
}
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Note that, until I replaced the RTC and rtc reference with TIMER and timer references, it worked fine.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Best regards, Charles&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/358269?ContentTypeID=1</link><pubDate>Tue, 15 Mar 2022 15:19:27 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c505f898-73f9-49bd-a177-a3d09255ab7c</guid><dc:creator>user107732</dc:creator><description>&lt;p&gt;Hey,&lt;/p&gt;
&lt;p&gt;Really sorry for the late response.&amp;nbsp;&lt;/p&gt;
[quote user="c.tessierpiart"]&lt;div&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;gpio_pin_configure_dt&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;filtered_synchro&lt;/span&gt;&lt;span&gt; &amp;nbsp;, &lt;/span&gt;&lt;span&gt;GPIO_INPUT&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;|&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GPIO_INT_DEBOUNCE&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;sends the application into&amp;nbsp;hardfault.&lt;/span&gt;&lt;/div&gt;[/quote]
&lt;p&gt;Could you tell me what it looks like when this happens.? Also, let me know how to reproduce the issue on my side.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/357159?ContentTypeID=1</link><pubDate>Wed, 09 Mar 2022 12:57:20 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:415f075d-a262-4364-a892-87a542fbca8f</guid><dc:creator>user105832</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Is there any update on the situation ?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/355762?ContentTypeID=1</link><pubDate>Wed, 02 Mar 2022 09:56:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d42d89d2-731f-450e-b8bd-522462196c63</guid><dc:creator>user105832</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Sorry for the late answer. After some invastigation, it seems that my GPIOs cause the nRF52840 to go into fault. It is weird because there is already quite a few GPIOs in the application and I use the same syntax. I have no build issues, when I flash the board, I can see a led that I set up before goes on and off (it is supposed to stay on) and when I use the debug a large part of my setup works great until I try to setup this new GPIO that goes to fault and then reset the board.&lt;/p&gt;
&lt;p&gt;My overlay :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;/ {
    pwmleds { 
        compatible = &amp;quot;pwm-leds&amp;quot;;
        pwm_led_0 {
            pwms = &amp;lt;&amp;amp;pwm0 42&amp;gt;;
            status = &amp;quot;okay&amp;quot;;
        };
        pwm_led1: pwm_led1 {
            pwms = &amp;lt;&amp;amp;pwm0 43&amp;gt;;
            status = &amp;quot;okay&amp;quot;;
        };
        pwm_led2: pwm_led2 {
            pwms = &amp;lt;&amp;amp;pwm0 44&amp;gt;;
            status = &amp;quot;okay&amp;quot;;
        };
        pwm_led3: pwm_led3 {
            pwms = &amp;lt;&amp;amp;pwm0 16&amp;gt;;
            status = &amp;quot;okay&amp;quot;;
        };
    };

    encoder {
		compatible = &amp;quot;gpio-keys&amp;quot;;
		encoder_a: encoder_a {
			gpios = &amp;lt; &amp;amp;gpio1 0x8 GPIO_ACTIVE_LOW &amp;gt;;
			label = &amp;quot;Encodeur port A&amp;quot;;
		};
		encoder_b: encoder_b {
			gpios = &amp;lt; &amp;amp;gpio1 0x7 GPIO_ACTIVE_LOW &amp;gt;;
			label = &amp;quot;Encodeur port B&amp;quot;;
		};
    };

    powerstage {
		compatible = &amp;quot;gpio-keys&amp;quot;;
		filteredsynchro: filteredsynchro {
			gpios = &amp;lt; &amp;amp;gpio1 0x0 (GPIO_PULL_UP | GPIO_ACTIVE_LOW) &amp;gt;;
			label = &amp;quot;Filtered Synchro&amp;quot;;
		};
		unfilteredsynchro: unfilteredsynchro {
			gpios = &amp;lt; &amp;amp;gpio1 0x1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW) &amp;gt;;
			label = &amp;quot;Unfiltered Synchro&amp;quot;;
		};
        igbtplus: igbtplus {
			gpios = &amp;lt; &amp;amp;gpio1 0x2 (GPIO_PULL_UP | GPIO_ACTIVE_LOW) &amp;gt;;
			label = &amp;quot;Command IGBT Plus&amp;quot;;
		};
        igbtminus: igbtminus {
			gpios = &amp;lt; &amp;amp;gpio1 0x3 (GPIO_PULL_UP | GPIO_ACTIVE_LOW) &amp;gt;;
			label = &amp;quot;Command IGBT Minus&amp;quot;;
		};
    };

    buttons {
		compatible = &amp;quot;gpio-keys&amp;quot;;
		button0: button_0 {
			gpios = &amp;lt;&amp;amp;gpio1 14 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)&amp;gt;;
			label = &amp;quot;Push button switch 0&amp;quot;;
		};
    };

    aliases {
        pwm-led0 = &amp;amp;pwm_led0;
        pwm-led1 = &amp;amp;pwm_led1;
        pwm-led2 = &amp;amp;pwm_led2;
        pwm-led3 = &amp;amp;pwm_led3;
        encoder-a = &amp;amp;encoder_a;
        encoder-b = &amp;amp;encoder_b;
        filterdsynchro    = &amp;amp;filteredsynchro;
        unfilteredsynchro = &amp;amp;unfilteredsynchro;
        igbtplus          = &amp;amp;igbtplus;
        igbtminus         = &amp;amp;igbtminus;
        led0 = &amp;amp;led0;
		led1 = &amp;amp;led1;
		led2 = &amp;amp;led2;
		led3 = &amp;amp;led3;
    };
};

&amp;amp;pwm0 {
    status = &amp;quot;okay&amp;quot;;
    ch0-pin = &amp;lt;42&amp;gt;;
    ch0-inverted;
    ch1-pin = &amp;lt;43&amp;gt;;
    ch1-inverted;
    ch2-pin = &amp;lt;44&amp;gt;;
    ch2-inverted;
    ch3-pin = &amp;lt;16&amp;gt;;
    ch3-inverted;
};
&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;Most GPIO works, the new ones are filteredsynchro, unfilteredsynchro, igbtplus, igbtminus. I use this synthax to setup the ones the work :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define ENCODER_A_NODE       DT_ALIAS(encoder_a)
static const struct gpio_dt_spec encoder_a = GPIO_DT_SPEC_GET_BY_IDX(ENCODER_A_NODE, gpios, 0);
static struct gpio_callback encoder_a_cb_data;

#define BUTTON	DT_ALIAS(sw0)
static const struct gpio_dt_spec button = GPIO_DT_SPEC_GET_OR(BUTTON, gpios, {0});
static struct gpio_callback button_cb_data;

void setup()
{
    ret = gpio_pin_configure_dt(&amp;amp;encoder_a, GPIO_INPUT | GPIO_INT_DEBOUNCE);*
    ret = gpio_pin_interrupt_configure_dt(&amp;amp;encoder_a, GPIO_INT_EDGE_RISING);
    gpio_init_callback(&amp;amp;encoder_a_cb_data, encoder_a_isr, BIT(encoder_a.pin));
	gpio_add_callback(encoder_a.port, &amp;amp;encoder_a_cb_data);
	
	ret = gpio_pin_configure_dt(&amp;amp;button, GPIO_INPUT | GPIO_INT_DEBOUNCE);
	ret = gpio_pin_interrupt_configure_dt(&amp;amp;button, GPIO_INT_EDGE_BOTH);
	gpio_init_callback(&amp;amp;button_cb_data, button_pressed, BIT(button.pin));
	gpio_add_callback(button.port, &amp;amp;button_cb_data);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;Button uses a synthax I found on another sample.&lt;/p&gt;
&lt;p&gt;I am now trying to use the same synthax :&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define FILTERED_SYNCHRO_NODE	DT_ALIAS(filteredsynchro)
#define UNFILTERED_SYNCHRO_NODE DT_ALIAS(unfilteredsynchro)
#define IGBT_PLUS_NODE      	DT_ALIAS(igbtplus)
#define IGBT_MINUS_NODE     	DT_ALIAS(igbtminus)

static const struct gpio_dt_spec filtered_synchro   = GPIO_DT_SPEC_GET_OR(FILTERED_SYNCHRO_NODE  , gpios, {0});
static const struct gpio_dt_spec unfiltered_synchro = GPIO_DT_SPEC_GET_OR(UNFILTERED_SYNCHRO_NODE, gpios, {0});
static const struct gpio_dt_spec igbt_plus          = GPIO_DT_SPEC_GET_OR(IGBT_PLUS_NODE         , gpios, {0});
static const struct gpio_dt_spec igbt_minus         = GPIO_DT_SPEC_GET_OR(IGBT_MINUS_NODE        , gpios, {0});

void setup_2()
{
    int ret;
    ret = gpio_pin_configure_dt(&amp;amp;filtered_synchro  , GPIO_INPUT | GPIO_INT_DEBOUNCE);
	ret = gpio_pin_configure_dt(&amp;amp;unfiltered_synchro, GPIO_INPUT | GPIO_INT_DEBOUNCE);
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;When using debug the line&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;ret&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;=&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;gpio_pin_configure_dt&lt;/span&gt;&lt;span&gt;(&lt;/span&gt;&lt;span&gt;&amp;amp;&lt;/span&gt;&lt;span&gt;filtered_synchro&lt;/span&gt;&lt;span&gt; &amp;nbsp;, &lt;/span&gt;&lt;span&gt;GPIO_INPUT&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;|&lt;/span&gt;&lt;span&gt; &lt;/span&gt;&lt;span&gt;GPIO_INT_DEBOUNCE&lt;/span&gt;&lt;span&gt;);&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;sends the application into&amp;nbsp;hardfault.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;I don&amp;#39;t see why this doesn&amp;#39;t work.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Best Regards,&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;Charles&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;edit :&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;My prj.conf lokks like this &lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;CONFIG_STDOUT_CONSOLE=y
CONFIG_PRINTK=y
CONFIG_PWM=y
CONFIG_LOG=y
CONFIG_LOG_PRINTK=y
CONFIG_LOG_MODE_IMMEDIATE=y
CONFIG_PWM_LOG_LEVEL_DBG=y
CONFIG_PPI_TRACE=y
CONFIG_SYSTEM_CLOCK_NO_WAIT=y&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;edit_2 : The application also contains a sample.yaml that I am not sure how it works.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;sample:
  name: Blink LED (PWM based)
tests:
  sample.basic.blink_led:
    # FIXME: We should remove those and just rely on depends_on
    filter: dt_alias_exists(&amp;quot;pwm-led0&amp;quot;) or
            dt_alias_exists(&amp;quot;pwm-led1&amp;quot;) or
            dt_alias_exists(&amp;quot;pwm-led2&amp;quot;)
    tags: drivers pwm
    depends_on: pwm
    harness: led
&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/355580?ContentTypeID=1</link><pubDate>Tue, 01 Mar 2022 13:52:46 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38b4f7a3-a125-4754-b993-0c0070222995</guid><dc:creator>user107732</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;Could you provide the logs.?&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/355487?ContentTypeID=1</link><pubDate>Tue, 01 Mar 2022 10:16:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e0dc7033-eafe-441a-8fbe-9c8c024303eb</guid><dc:creator>user105832</dc:creator><description>&lt;p&gt;It seems the application reset the board no matter what timer I use.&lt;/p&gt;
&lt;p&gt;To be precise. The board seems to reset continuously once it hits ppi_trace_enable.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/355346?ContentTypeID=1</link><pubDate>Mon, 28 Feb 2022 15:58:44 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:38b366ad-f3da-4ec1-a79d-a9d149a27ad3</guid><dc:creator>user107732</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;You will need to&amp;nbsp;replace the&amp;nbsp;&amp;nbsp;&lt;span&gt;&lt;strong&gt;#define RTC NRF_RTC2&lt;/strong&gt; with&amp;nbsp;&lt;strong&gt;#define TIMER NRF_TIMER2&lt;/strong&gt;&amp;nbsp;(or another TIMER instance that is not used).&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;Then replace the references in &lt;strong&gt;ppi_trace_setup()&lt;/strong&gt; to use the TIMER instead of the RTC:&lt;/p&gt;
&lt;p&gt;e.g.: nrf_rtc_event_address_get(TIMER, NRF_TIMER_EVENT_COMPARE_0)&lt;/p&gt;
&lt;p&gt;Note: Remember to add &lt;strong&gt;#include &amp;lt;hal/nrf_timer.h&amp;gt;&lt;/strong&gt; from main.c&lt;/p&gt;
&lt;p&gt;Hope this helps.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Using PPI trace with Timer0</title><link>https://test-devzone.nordicsemi.com/thread/355088?ContentTypeID=1</link><pubDate>Fri, 25 Feb 2022 15:20:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6a1ec1ae-c8fd-49d2-8cdb-604edebb6fa7</guid><dc:creator>user107732</dc:creator><description>&lt;p&gt;Hi,&lt;/p&gt;
&lt;p&gt;I will look into it and get back to you on monday.&lt;/p&gt;
&lt;p&gt;Regards,&lt;/p&gt;
&lt;p&gt;Swathy&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>