<?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>Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/95287/timer-accuracy-for-micro-seconds</link><description>Hi, 
 
 i defined timer 
 K_TIMER_DEFINE ( my_timer , my_timer_handler , NULL ); 
 
 
 then i am starting the timer with configuration : 
 
 k_timer_start (&amp;amp; my_timer , K_USEC ( 500 ), K_USEC ( 500 )); 
 
 
 The issue that the 
 the handler prints log</description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Sun, 16 Apr 2023 09:09:00 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/95287/timer-accuracy-for-micro-seconds" /><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/420624?ContentTypeID=1</link><pubDate>Sun, 16 Apr 2023 09:09:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6e1fbb1d-38fc-4add-8b71-8232570e5537</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;Did you try to use event manager?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418711?ContentTypeID=1</link><pubDate>Sun, 02 Apr 2023 10:48:11 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:398b93e3-20e4-46c0-ab33-e638a4dc8b7c</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;Hi,&lt;br /&gt;I&amp;nbsp;tested it&amp;nbsp; without zephyr +/- like you suggested, it is working.&lt;br /&gt;Looks like integrations with zephyr is the issue.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418710?ContentTypeID=1</link><pubDate>Sun, 02 Apr 2023 10:40:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2784bdc1-b2a1-4693-bc28-26dac56e51dd</guid><dc:creator>Emil Lenngren</dc:creator><description>&lt;p&gt;If I were to perform a SPIM transaction exactly every 500 us, I would do the following.&lt;/p&gt;
&lt;p&gt;- Use one RTC compare register that publishes a DPPI event.&lt;/p&gt;
&lt;p&gt;- Use one TIMER peripheral configured to perform the START task when the DPPI event from RTC compare is triggered.&lt;/p&gt;
&lt;p&gt;- Use a TIMER&amp;nbsp;compare register, programmed with the &amp;lt; 31.518 microseconds adjustment needed to match 500 microseconds, that triggers a DPPI event. A &amp;quot;shortcut&amp;quot; is programmed as well to stop the TIMER at the same time.&lt;/p&gt;
&lt;p&gt;-&amp;nbsp;Program the SPIM peripheral to listen on the DPPI event from the TIMER to start the transaction.&lt;/p&gt;
&lt;p&gt;- Use an interrupt on the END event from SPIM to process the data, set up for the next SPIM transaction as well as program the timing and DPPI as instructed above for the next transaction to be started at the correct time.&lt;/p&gt;
&lt;p&gt;This method will use the sleep clock and thus very low power between the cpu finished processing the last SPIM transaction result until the RTC wakes up the TIMER.&lt;/p&gt;
&lt;p&gt;Note that the RTC runs at an interval of 1/32768 seconds, which is around 30.518 microseconds. 500 is not divisible by this number, since 500/(1/32768) = 16.384. Therefore a TIMER peripheral must be configured to wait for the last microseconds, to make the result accurate. So, assuming the RTC is turned on all the time, in order to calculate the next rtc and timer compare registers, you need to take into account the previous TIMER peripheral adjustment (before the previous SPIM transaction) and the next TIMER peripheral adjustment (to be applied in the next SPIM transaction). If you are happy with, let&amp;#39;s say, performing a SPIM transaction every ~488 or ~519 microseconds instead, you can use the RTC only and skip the TIMER.&lt;/p&gt;
&lt;p&gt;Not sure how to program this with Zephyr in mind though, since I have not used Zephyr.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418704?ContentTypeID=1</link><pubDate>Sun, 02 Apr 2023 06:55:35 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:81cee915-ff44-4c5a-80c8-290b6f52eb4d</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;Maybe it is post processing.&lt;br /&gt;1. I started form EVENT_MANAGER project&amp;nbsp;&lt;br /&gt;2. I generate every 500 us timer event, then submit this event&amp;nbsp; to two module that should&amp;nbsp; process the data&lt;br /&gt;3. Every 2000 samples (1 second) i print the delta of time now - previous time&amp;nbsp; , so it should be 1 second.&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418404?ContentTypeID=1</link><pubDate>Thu, 30 Mar 2023 15:59:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2bfa461b-386e-442f-a6a5-8a6705a00a95</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;I need to understand all the contexts in which you are doing this.&amp;nbsp;&lt;br /&gt;For me it seems more of the post processing latency issue when you are capturing the delta than the timer accuracy issue.&lt;br /&gt;Can you give me a simplistic project to test?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418117?ContentTypeID=1</link><pubDate>Wed, 29 Mar 2023 13:16:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c23c2ba1-5d83-41d6-bea6-975eb6bc642a</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;1. I can&amp;#39;t read from timer interrupt,&amp;nbsp;i also have a SPI read.&lt;br /&gt;2. Try to use event manager and submit an event every 500 us and read the event at other modules(for example 2) and proccess some logic(try sleep for random ms)&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418064?ContentTypeID=1</link><pubDate>Wed, 29 Mar 2023 10:36:06 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d046b72d-cbf9-443a-aaaa-4cba3f67f9db</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;I am getting confusing results with your code snippet.&lt;/p&gt;
&lt;p&gt;I am not sure what context the semaphore is taken but in my case I am doing this in the main context.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;This below line is in the main context and is having a lot of latencies before it can execute. Like taking the semaphore. This is not a correct place to read delta. The correct place to read delta would be to get a counter capture from the TIMER to avoid all the overhead of interrupt latencies and latencies from semaphore handling between contexts.&lt;/p&gt;
&lt;p&gt;But in your case, you can try to read the delta&amp;nbsp; at the beginning of&amp;nbsp;test_counter_interrupt_fn to get better accurate time difference than the one you are getting now. The one you are getting now adds other latencies(interrupt handlng/scheduler switch/semaphore handling etc) into the delta that you are printing.&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;printk(&amp;quot;READ:%lld\n&amp;quot;, k_uptime_delta(&amp;amp;time));&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/418010?ContentTypeID=1</link><pubDate>Wed, 29 Mar 2023 07:21:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c3f9cae5-82a9-4df5-a9e9-9ff8f926f932</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Sorry for late reply maxim. I will try your code snippet right away and see if I can reproduce the same inaccuracies that you see.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/417214?ContentTypeID=1</link><pubDate>Thu, 23 Mar 2023 17:49:03 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:4a9759bb-a64a-4e2e-853b-9b2c29b146fa</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;Still have issues if i use counter with timer0&lt;/p&gt;
&lt;p&gt;i set alarm to 500 micro but after 2000 triggers that should print 1000(0.5*2000= 1000 mili)&amp;nbsp; it prints&lt;br /&gt;&lt;br /&gt;00&amp;gt; I: READ:1748&lt;br /&gt;00&amp;gt; I: READ:1904&lt;br /&gt;00&amp;gt; I: READ:1873&lt;br /&gt;00&amp;gt; I: READ:1751&lt;br /&gt;00&amp;gt; I: READ:1979&lt;br /&gt;00&amp;gt; I: READ:1871&lt;br /&gt;00&amp;gt; I: READ:1784&lt;br /&gt;00&amp;gt; I: READ:1871&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_COUNTER&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;&lt;span&gt;CONFIG_COUNTER_TIMER0&lt;/span&gt;&lt;span&gt;=y&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here is my code:&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;&lt;pre class="ui-code" data-mode="text"&gt;#define THREAD_PRIORITY K_PRIO_PREEMPT(K_HIGHEST_APPLICATION_THREAD_PRIO)
#define TIMER DT_NODELABEL(timer0)
#define DELAY 500&lt;/pre&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;Here is a k_thread_entry_t set_alarm&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void set_alarm(void)
{
    const struct device *const counter_dev = DEVICE_DT_GET(TIMER);
    int err;

    printk(&amp;quot;Counter alarm sample\n\n&amp;quot;);

    if (!device_is_ready(counter_dev))
    {
        printk(&amp;quot;device not ready.\n&amp;quot;);
        return;
    }

    counter_start(counter_dev);

    alarm_cfg.flags = 0;
    alarm_cfg.ticks = counter_us_to_ticks(counter_dev, DELAY);
    alarm_cfg.callback = test_counter_interrupt_fn;
    alarm_cfg.user_data = &amp;amp;alarm_cfg;

    err = counter_set_channel_alarm(counter_dev, ALARM_CHANNEL_ID,
                                    &amp;amp;alarm_cfg);
    printk(&amp;quot;Set alarm in %u sec (%u ticks)\n&amp;quot;,
           (uint32_t)(counter_ticks_to_us(counter_dev,
                                          alarm_cfg.ticks) /
                      USEC_PER_SEC),
           alarm_cfg.ticks);

    if (-EINVAL == err)
    {
        printk(&amp;quot;Alarm settings invalid\n&amp;quot;);
    }
    else if (-ENOTSUP == err)
    {
        printk(&amp;quot;Alarm setting request not supported\n&amp;quot;);
    }
    else if (err != 0)
    {
        printk(&amp;quot;Error\n&amp;quot;);
    }
    while (1)
    {
        static uint16_t c = 0;
        k_sem_take(&amp;amp;timer_semaphore, K_FOREVER);
        static int64_t time = 0;
        if (c == 2000)
        {
            LOG_INF(&amp;quot;READ:%lld&amp;quot;, k_uptime_delta(&amp;amp;time));
            c = 0;
        }
        if ((c++ % 2) == 0)
        {

            struct acc_event *event = new_acc_event();
            EVENT_SUBMIT(event);
        }
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;callback that give semaphore to thread loop&lt;/p&gt;
&lt;p&gt;&lt;pre class="ui-code" data-mode="c_cpp"&gt;static void test_counter_interrupt_fn(const struct device *counter_dev,
                                      uint8_t chan_id, uint32_t ticks,
                                      void *user_data)
{
    struct counter_alarm_cfg *config = user_data;
    uint32_t now_ticks;
    uint64_t now_usec;
    int now_sec;
    int err;

    k_sem_give(&amp;amp;timer_semaphore);

  

    err = counter_set_channel_alarm(counter_dev, ALARM_CHANNEL_ID,
                                    user_data);
    if (err != 0)
    {
        printk(&amp;quot;Alarm could not be set\n&amp;quot;);
    }
}&lt;/pre&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;
&lt;p&gt;What is wrong?&lt;br /&gt;&lt;br /&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/416692?ContentTypeID=1</link><pubDate>Wed, 22 Mar 2023 07:03:34 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c173a7dc-b9b1-4eee-9032-854a5012081c</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="MaximSh"]So how to run polling of some code every 500 microseconds without using timer?[/quote]
&lt;p&gt;Not sure if I understand this right, you want to have a time waiting code that waits for 500uS without using any timer? I am guessing that you want to use Kernel API for that instead of directly using timer API.&lt;/p&gt;
&lt;p&gt;In that case you can only sleep with a resolution of the timer tick(&lt;span&gt;SYS_CLOCK_TICKS_PER_SEC default value is 32768 on RTC) . If you want&amp;nbsp;&lt;/span&gt;&lt;span&gt;&amp;nbsp;any better resolution, then you need to use high resolution timer API like nrfx_timer or nrfx_systick. The disadvantage of using high resolution timers is that they keep the high frequency clock on all the time and hence increasing the average power consumption of your application. If your application is running on a battery, it will be drained within days (if not hours)&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/416686?ContentTypeID=1</link><pubDate>Wed, 22 Mar 2023 06:19:16 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:476ea2f2-995d-4fae-89df-4eb727268348</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;nrfx_timer is OS agnostic, so you can still use it in your application even in Zephyr SDK&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/416504?ContentTypeID=1</link><pubDate>Tue, 21 Mar 2023 11:15:12 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:2d7f7460-4864-4d6d-bc31-d486132bd261</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;Can i use&amp;nbsp;&lt;span&gt;nrfx_timer with zephyr SDK?&amp;nbsp; or use counter API?&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/416292?ContentTypeID=1</link><pubDate>Mon, 20 Mar 2023 13:41:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:25520353-19bd-40a6-9f49-ae1191359b03</guid><dc:creator>Susheel Nuguru</dc:creator><description>[quote user="MaximSh"]I try to put K_MSEC(1) but the work handler called after 1.117 ms.[/quote]
&lt;p&gt;Are you calling K_MSEC(1) inside the worker handler or are you queuing the worker handler after K_MSEC(1)? After queuing the work handler, it will not necessary be called immediately if there are higher priority interrupts/threads/worker handlers that are pending to run.&lt;/p&gt;
&lt;p&gt;If you want higher resolution timer I recommend you to use the API in&amp;nbsp;modules\hal\nordic\nrfx\drivers\include\nrfx_timer.h&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/416242?ContentTypeID=1</link><pubDate>Mon, 20 Mar 2023 11:55:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:8906a372-fc3b-4d6f-9b13-bf8683bd1593</guid><dc:creator>MaximSh</dc:creator><description>&lt;ul&gt;
&lt;li&gt;So how to run polling of some code every 500 microseconds without using timer?&lt;/li&gt;
&lt;li&gt;Why setting 128 MHz clock for cpu_app can&amp;#39;t help?&lt;/li&gt;
&lt;li&gt;it is very critical for the aplication to read from SPI data every 500 micro&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Thanks&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/403413?ContentTypeID=1</link><pubDate>Thu, 05 Jan 2023 13:39:05 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fa7c7fae-7cca-4abf-8d4d-cea3f58b5549</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;I try to put K_MSEC(1) but the work handler called after 1.117 ms.&lt;br /&gt;.&lt;br /&gt;i fareget that i changed&amp;nbsp;&lt;/p&gt;
&lt;div&gt;
&lt;div&gt;&lt;span&gt;hfclock to 128 MHz but i think it is not related.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre class="ui-code" data-mode="text"&gt;static int hfclock_config_and_start(void)
{
	int ret;

	/* Use this to turn on 128 MHz clock for cpu_app */
	ret = nrfx_clock_divider_set(NRF_CLOCK_DOMAIN_HFCLK, NRF_CLOCK_HFCLK_DIV_1);

	ret -= NRFX_ERROR_BASE_NUM;
	if (ret)
	{
		return ret;
	}

	nrfx_clock_hfclk_start();
	while (!nrfx_clock_hfclk_is_running())
	{
	}

	return 0;
}&lt;/pre&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/403384?ContentTypeID=1</link><pubDate>Thu, 05 Jan 2023 12:09:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:b6803aa6-c61e-4c8a-b15e-143413adeb05</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;The resolution of the kernel timers depend on which clock you are using. We are using RTC on nRF and the configuration &lt;a href="https://docs.zephyrproject.org/3.1.0/kernel/services/timing/clocks.html#c.k_uptime_ticks"&gt;CONFIG_SYS_CLOCK_TICKS_PER_SEC&lt;/a&gt;&amp;nbsp;is set to 32768 in our samples.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;You should not use k_timer for creating timeouts less than the resolution of the system timer.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/403003?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2023 14:36:57 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:861e84c7-d046-4f44-9dc1-ad9a18a3542a</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;i didn&amp;#39;t change configurations&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/402999?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2023 14:24:32 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e81132ca-44af-409a-9281-6c59d3b3203c</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;Are you using SyTick as kernel timer? on nRF the default should be RTC to be low power capable and the tick resolution I assumed to be 1ms.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/402989?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2023 14:07:39 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bf8de239-6428-485f-a282-e139734fa4a2</guid><dc:creator>MaximSh</dc:creator><description>&lt;p&gt;i think it converts time to ticks&amp;nbsp;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Timer accuracy for micro seconds</title><link>https://devzone.nordicsemi.com/thread/402911?ContentTypeID=1</link><pubDate>Tue, 03 Jan 2023 09:15:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e3868eae-3adc-49eb-a780-d029e9f630f1</guid><dc:creator>Susheel Nuguru</dc:creator><description>&lt;p&gt;I thought the k_timer resolution is in milliseconds and not micro seconds. Need to look into the code to see if microseconds are also supported&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>