How many system ticks mean 1ms?

Hi,

     I need to use system tick to do some math calculate. So I create a new function to get systick like as below. then I can get some number.

uint32_t nrf_drv_systick_get_for_cadence()
{
    return nrf_systick_val_get();
}

And I create a 200ms timer to get systick every 200ms. like as below

static void data_process_handler(void * p_context)
{ 
    uint32_t time_diff;
    
    time_diff = nrf_drv_systick_get_for_cadence();
    printf("%d\r\n",time_diff);
}

In my understanding, 52832 cpu frequency is fixed on 64MHz. So I refer to below function. I guess 64000 systick is mean "1ms"

So if I printf systick result every 200ms, I think that the result is always increase 64000 * 200 = 12800000

static inline uint32_t nrf_drv_systick_ms_tick(uint32_t ms)
{
    return ms * ((SystemCoreClock) / NRF_DRV_SYSTICK_MS);
}
 

But the result is not my imagination.

31298
4007830
7984375
11960898
15937430
3136746
7113278
11089819
15066342
2265658
6242190
10218722
14195271
1394570
5371102
9347634
13324166
523499
4500014
8476546
12453078

So My question is how many system ticks mean "1ms"? Is there anything I misunderstood?

Thank you.

John.

  • Hi John,

    I see. Then this is a special case (one of very few) where the SysTick timer can be a good choice. There are no other timers that give you the same resolution (the next in line would be a TIMER, which on the nRF52832 can be up to 16 MHz).

  • Hi,

       Yes. I see. But I worry about systick number. According to my current test. 19885 is mean 1ms. Is this correct? Is there any situation where this value will change?

    Thank you.

    John.

  • Hi John,

    JohnCC said:
    Yes. I see. But I worry about systick number. According to my current test. 19885 is mean 1ms. Is this correct?

    No. 1 ms is 64000 as you wrote before, as this is a 64 MHz clock. I made a small demo to show this:

    #include <stdbool.h>
    #include <stdint.h>
    #include "boards.h"
    #include "app_timer.h"
    #include "nordic_common.h"
    #include "nrf_error.h"
    #include "nrf_drv_systick.h"
    
    #include "nrf_log.h"
    #include "nrf_log_ctrl.h"
    #include "nrf_log_default_backends.h"
    
    static nrfx_systick_state_t m_systick_state;
    
    
    static uint32_t ticks_diff_get(nrfx_systick_state_t * p_now, nrfx_systick_state_t * p_old)
    {
        return ((p_now->time - p_old->time) & NRF_SYSTICK_VAL_MASK);
    }
    
    
    void clock_initialization()
    {
        NRF_CLOCK->LFCLKSRC            = (CLOCK_LFCLKSRC_SRC_Xtal << CLOCK_LFCLKSRC_SRC_Pos);
        NRF_CLOCK->EVENTS_LFCLKSTARTED = 0;
        NRF_CLOCK->TASKS_LFCLKSTART    = 1;
    
        while (NRF_CLOCK->EVENTS_LFCLKSTARTED == 0)
        {
            // Do nothing.
        }
    }
    
    
    
    APP_TIMER_DEF(m_systick_get_timer_id);
    
    static void systick_get_timer_handler(void * p_context)
    {
        nrfx_systick_state_t old_systick_state = m_systick_state;
        nrf_drv_systick_get(&m_systick_state);
        NRF_LOG_INFO("SysTick state: %u (elapsed: %u)",
                     m_systick_state.time,
                     ticks_diff_get(&old_systick_state, &m_systick_state));
    }
    
    
    
    static void systick_get_timer_init_and_start()
    {
        ret_code_t err_code;
    
        err_code = app_timer_init();
        APP_ERROR_CHECK(err_code);
    
    
        err_code = app_timer_create(&m_systick_get_timer_id,
                                    APP_TIMER_MODE_REPEATED,
                                    systick_get_timer_handler);
        APP_ERROR_CHECK(err_code);
    
        err_code = app_timer_start(m_systick_get_timer_id, APP_TIMER_TICKS(1), NULL);
        APP_ERROR_CHECK(err_code);
    }
    
    
    int main(void)
    {
        clock_initialization();
        systick_get_timer_init_and_start();
        nrf_drv_systick_init();
    
        APP_ERROR_CHECK(NRF_LOG_INIT(NULL));
        NRF_LOG_DEFAULT_BACKENDS_INIT();
    
        NRF_LOG_INFO("SysTick demo started.");
    
        while (true)
        {
            NRF_LOG_FLUSH();
            __SEV();
            __WFE();
            __WFE();
        }
    }
    

    Output:

    <info> app_timer: RTC: initialized.
    <info> app: SysTick demo started.
    <info> app: SysTick state: 16712500 (elapsed: 64716)
    <info> app: SysTick state: 16649220 (elapsed: 63280)
    <info> app: SysTick state: 16585940 (elapsed: 63280)
    <info> app: SysTick state: 16522664 (elapsed: 63276)
    <info> app: SysTick state: 16459380 (elapsed: 63284)
    <info> app: SysTick state: 16396092 (elapsed: 63288)
    <info> app: SysTick state: 16332808 (elapsed: 63284)
    <info> app: SysTick state: 16269504 (elapsed: 63304)
    <info> app: SysTick state: 16079648 (elapsed: 63284)
    <info> app: SysTick state: 16016344 (elapsed: 63304)
    <info> app: SysTick state: 15953056 (elapsed: 63288)
    <info> app: SysTick state: 15889772 (elapsed: 63284)
    <info> app: SysTick state: 15826480 (elapsed: 63292)
    <info> app: SysTick state: 15763184 (elapsed: 63296)
    <info> app: SysTick state: 15699888 (elapsed: 63296)
    <info> app: SysTick state: 15636584 (elapsed: 63304)
    <info> app: SysTick state: 15573288 (elapsed: 63296)
    <info> app: SysTick state: 15509972 (elapsed: 63316)
    <info> app: SysTick state: 15446648 (elapsed: 63324)
    <info> app: SysTick state: 15383324 (elapsed: 63324)
    <info> app: SysTick state: 15320020 (elapsed: 63304)
    <info> app: SysTick state: 15256728 (elapsed: 63292)
    <info> app: SysTick state: 15193444 (elapsed: 63284)
    <info> app: SysTick state: 15130160 (elapsed: 63284)
    <info> app: SysTick state: 15066872 (elapsed: 63288)
    <info> app: SysTick state: 15003580 (elapsed: 63292)
    <info> app: SysTick state: 14877032 (elapsed: 63268)
    <info> app: SysTick state: 14813744 (elapsed: 63288)
    <info> app: SysTick state: 14750456 (elapsed: 63288)
    <info> app: SysTick state: 14687188 (elapsed: 63268)
    <info> app: SysTick state: 14623904 (elapsed: 63284)
    <info> app: SysTick state: 14560612 (elapsed: 63292)
    <info> app: SysTick state: 14497336 (elapsed: 63276)
    <info> app: SysTick state: 14434036 (elapsed: 63300)
    <info> app: SysTick state: 14370752 (elapsed: 63284)
    <info> app: SysTick state: 14244168 (elapsed: 63296)
    <info> app: SysTick state: 14180868 (elapsed: 63300)
    <info> app: SysTick state: 14117564 (elapsed: 63304)
    <info> app: SysTick state: 14054256 (elapsed: 63308)
    <info> app: SysTick state: 13990948 (elapsed: 63308)
    <info> app: SysTick state: 13927620 (elapsed: 63328)
    <info> app: SysTick state: 13864296 (elapsed: 63324)
    <info> app: SysTick state: 13800984 (elapsed: 63312)
    <info> app: SysTick state: 13737656 (elapsed: 63328)
    <info> app: SysTick state: 13674336 (elapsed: 63320)
    <info> app: SysTick state: 13611036 (elapsed: 63300)
    <info> app: SysTick state: 13547740 (elapsed: 63296)
    <info> app: SysTick state: 13484412 (elapsed: 63328)
    <info> app: SysTick state: 13357772 (elapsed: 63316)
    <info> app: SysTick state: 13294452 (elapsed: 63320)
    <info> app: SysTick state: 13231108 (elapsed: 63344)
    <info> app: SysTick state: 13167784 (elapsed: 63324)
    <info> app: SysTick state: 13104480 (elapsed: 63304)
    <info> app: SysTick state: 13041176 (elapsed: 63304)
    <info> app: SysTick state: 12977868 (elapsed: 63308)
    <info> app: SysTick state: 12914552 (elapsed: 63316)
    <info> app: SysTick state: 12851224 (elapsed: 63328)
    <info> app: SysTick state: 12724600 (elapsed: 63316)
    <info> app: SysTick state: 12661300 (elapsed: 63300)
    <info> app: SysTick state: 12598004 (elapsed: 63296)
    <info> app: SysTick state: 12534688 (elapsed: 63316)
    <info> app: SysTick state: 12471384 (elapsed: 63304)
    <info> app: SysTick state: 12408072 (elapsed: 63312)
    <info> app: SysTick state: 12344744 (elapsed: 63328)
    <info> app: SysTick state: 12281424 (elapsed: 63320)
    <info> app: SysTick state: 12218108 (elapsed: 63316)
    <info> app: SysTick state: 12154788 (elapsed: 63320)
    <info> app: SysTick state: 12091460 (elapsed: 63328)
    <info> app: SysTick state: 12028124 (elapsed: 63336)
    <info> app: SysTick state: 11964820 (elapsed: 63304)
    <info> app: SysTick state: 11838180 (elapsed: 63320)
    <info> app: SysTick state: 11774868 (elapsed: 63312)
    <info> app: SysTick state: 11711540 (elapsed: 63328)
    <info> app: SysTick state: 11648228 (elapsed: 63312)
    <info> app: SysTick state: 11584916 (elapsed: 63312)
    <info> app: SysTick state: 11521604 (elapsed: 63312)
    <info> app: SysTick state: 11458288 (elapsed: 63316)
    <info> app: SysTick state: 11394968 (elapsed: 63320)
    <info> app: SysTick state: 11331664 (elapsed: 63304)
    <info> app: SysTick state: 11078412 (elapsed: 63304)
    <info> app: SysTick state: 11015104 (elapsed: 63308)
    <info> app: SysTick state: 10951800 (elapsed: 63304)
    <info> app: SysTick state: 10888496 (elapsed: 63304)
    <info> app: SysTick state: 10825196 (elapsed: 63300)
    <info> app: SysTick state: 10761904 (elapsed: 63292)
    <info> app: SysTick state: 10698588 (elapsed: 63316)
    <info> app: SysTick state: 10635256 (elapsed: 63332)
    <info> app: SysTick state: 10571940 (elapsed: 63316)
    <info> app: SysTick state: 10508624 (elapsed: 63316)
    <info> app: SysTick state: 10445324 (elapsed: 63300)
    <info> app: SysTick state: 10382012 (elapsed: 63312)
    <info> app: SysTick state: 10318720 (elapsed: 63292)
    <info> app: SysTick state: 10255420 (elapsed: 63300)
    <info> app: SysTick state: 10192112 (elapsed: 63308)
    <info> app: SysTick state: 10128780 (elapsed: 63332)
    <info> app: SysTick state: 10065480 (elapsed: 63300)
    <info> app: SysTick state: 10002184 (elapsed: 63296)
    <info> app: SysTick state: 9938888 (elapsed: 63296)
    <info> app: SysTick state: 9875584 (elapsed: 63304)
    <info> app: SysTick state: 9812260 (elapsed: 63324)
    <info> app: SysTick state: 9748920 (elapsed: 63340)
    <info> app: SysTick state: 9685600 (elapsed: 63320)
    <info> app: SysTick state: 9622284 (elapsed: 63316)
    <info> app: SysTick state: 9558972 (elapsed: 63312)
    <info> app: SysTick state: 9495684 (elapsed: 63288)
    <info> app: SysTick state: 9432380 (elapsed: 63304)
    <info> app: SysTick state: 9369072 (elapsed: 63308)
    <info> app: SysTick state: 9305756 (elapsed: 63316)
    <info> app: SysTick state: 9242424 (elapsed: 63332)
    <info> app: SysTick state: 9179100 (elapsed: 63324)
    <info> app: SysTick state: 9115760 (elapsed: 63340)
    <info> app: SysTick state: 9052440 (elapsed: 63320)
    <info> app: SysTick state: 8989112 (elapsed: 63328)
    <info> app: SysTick state: 8925796 (elapsed: 63316)
    <info> app: SysTick state: 8609232 (elapsed: 63288)
    <info> app: SysTick state: 8545924 (elapsed: 63308)
    <info> app: SysTick state: 8482612 (elapsed: 63312)
    <info> app: SysTick state: 8419292 (elapsed: 63320)
    <info> app: SysTick state: 8355956 (elapsed: 63336)
    <info> app: SysTick state: 8292620 (elapsed: 63336)
    <info> app: SysTick state: 8229308 (elapsed: 63312)
    <info> app: SysTick state: 8165984 (elapsed: 63324)
    <info> app: SysTick state: 8102680 (elapsed: 63304)
    <info> app: SysTick state: 8039372 (elapsed: 63308)
    <info> app: SysTick state: 7976092 (elapsed: 63280)
    <info> app: SysTick state: 7912804 (elapsed: 63288)
    <info> app: SysTick state: 7849492 (elapsed: 63312)
    <info> app: SysTick state: 7786196 (elapsed: 63296)
    <info> app: SysTick state: 7722888 (elapsed: 63308)
    <info> app: SysTick state: 7659588 (elapsed: 63300)
    <info> app: SysTick state: 7596296 (elapsed: 63292)
    <info> app: SysTick state: 7533008 (elapsed: 63288)
    <info> app: SysTick state: 7469704 (elapsed: 63304)
    <info> app: SysTick state: 7406372 (elapsed: 63332)
    <info> app: SysTick state: 7343052 (elapsed: 63320)
    <info> app: SysTick state: 7279728 (elapsed: 63324)
    <info> app: SysTick state: 7216404 (elapsed: 63324)
    <info> app: SysTick state: 7153092 (elapsed: 63312)
    <info> app: SysTick state: 7089764 (elapsed: 63328)
    <info> app: SysTick state: 7026440 (elapsed: 63324)
    <info> app: SysTick state: 6963140 (elapsed: 63300)
    <info> app: SysTick state: 6899840 (elapsed: 63300)
    <info> app: SysTick state: 6836516 (elapsed: 63324)
    <info> app: SysTick state: 6773208 (elapsed: 63308)
    <info> app: SysTick state: 6709892 (elapsed: 63316)
    <info> app: SysTick state: 6583288 (elapsed: 63300)
    <info> app: SysTick state: 6519984 (elapsed: 63304)
    <info> app: SysTick state: 6456684 (elapsed: 63300)
    <info> app: SysTick state: 6393384 (elapsed: 63300)
    <info> app: SysTick state: 6330092 (elapsed: 63292)
    <info> app: SysTick state: 6266792 (elapsed: 63300)
    <info> app: SysTick state: 6203500 (elapsed: 63292)
    <info> app: SysTick state: 6140188 (elapsed: 63312)
    <info> app: SysTick state: 6076880 (elapsed: 63308)
    <info> app: SysTick state: 6013596 (elapsed: 63284)
    <info> app: SysTick state: 5697096 (elapsed: 63316)
    <info> app: SysTick state: 5633800 (elapsed: 63296)
    <info> app: SysTick state: 5570484 (elapsed: 63316)
    <info> app: SysTick state: 5507172 (elapsed: 63312)
    <info> app: SysTick state: 5443892 (elapsed: 63280)
    <info> app: SysTick state: 5380628 (elapsed: 63264)
    <info> app: SysTick state: 5317348 (elapsed: 63280)
    <info> app: SysTick state: 5254056 (elapsed: 63292)
    <info> app: SysTick state: 5190752 (elapsed: 63304)
    <info> app: SysTick state: 5127452 (elapsed: 63300)
    <info> app: SysTick state: 5064168 (elapsed: 63284)
    <info> app: SysTick state: 5000880 (elapsed: 63288)
    <info> app: SysTick state: 4937596 (elapsed: 63284)
    <info> app: SysTick state: 4874304 (elapsed: 63292)
    <info> app: SysTick state: 4811000 (elapsed: 63304)
    <info> app: SysTick state: 4747704 (elapsed: 63296)
    <info> app: SysTick state: 4684428 (elapsed: 63276)
    <info> app: SysTick state: 4621152 (elapsed: 63276)
    <info> app: SysTick state: 4557852 (elapsed: 63300)
    <info> app: SysTick state: 4494572 (elapsed: 63280)
    <info> app: SysTick state: 4431296 (elapsed: 63276)
    <info> app: SysTick state: 4367996 (elapsed: 63300)
    <info> app: SysTick state: 4304684 (elapsed: 63312)
    <info> app: SysTick state: 4241380 (elapsed: 63304)
    <info> app: SysTick state: 4178096 (elapsed: 63284)
    <info> app: SysTick state: 4114808 (elapsed: 63288)
    <info> app: SysTick state: 4051504 (elapsed: 63304)
    <info> app: SysTick state: 3988220 (elapsed: 63284)
    <info> app: SysTick state: 3924920 (elapsed: 63300)
    <info> app: SysTick state: 3861648 (elapsed: 63272)
    <info> app: SysTick state: 3671812 (elapsed: 63284)
    <info> app: SysTick state: 3608520 (elapsed: 63292)
    <info> app: SysTick state: 3545224 (elapsed: 63296)
    <info> app: SysTick state: 3481932 (elapsed: 63292)
    <info> app: SysTick state: 3418652 (elapsed: 63280)
    <info> app: SysTick state: 3355340 (elapsed: 63312)
    <info> app: SysTick state: 3292064 (elapsed: 63276)
    <info> app: SysTick state: 3228776 (elapsed: 63288)
    <info> app: SysTick state: 3165492 (elapsed: 63284)
    <info> app: SysTick state: 3102188 (elapsed: 63304)
    <info> app: SysTick state: 3038892 (elapsed: 63296)
    <info> app: SysTick state: 2975620 (elapsed: 63272)
    <info> app: SysTick state: 2912340 (elapsed: 63280)
    <info> app: SysTick state: 2849056 (elapsed: 63284)
    <info> app: SysTick state: 2785752 (elapsed: 63304)
    <info> app: SysTick state: 2722472 (elapsed: 63280)
    <info> app: SysTick state: 2659180 (elapsed: 63292)
    <info> app: SysTick state: 2595896 (elapsed: 63284)
    <info> app: SysTick state: 2532612 (elapsed: 63284)
    <info> app: SysTick state: 2469316 (elapsed: 63296)
    <info> app: SysTick state: 2406004 (elapsed: 63312)
    <info> app: SysTick state: 2152796 (elapsed: 63308)
    <info> app: SysTick state: 2089492 (elapsed: 63304)
    <info> app: SysTick state: 2026176 (elapsed: 63316)
    <info> app: SysTick state: 1962844 (elapsed: 63332)
    <info> app: SysTick state: 1899496 (elapsed: 63348)
    <info> app: SysTick state: 1836164 (elapsed: 63332)
    <info> app: SysTick state: 1772836 (elapsed: 63328)
    <info> app: SysTick state: 1709520 (elapsed: 63316)
    <info> app: SysTick state: 1646184 (elapsed: 63336)
    <info> app: SysTick state: 1582880 (elapsed: 63304)
    <info> app: SysTick state: 1519548 (elapsed: 63332)
    <info> app: SysTick state: 1456216 (elapsed: 63332)
    <info> app: SysTick state: 1392896 (elapsed: 63320)
    <info> app: SysTick state: 1329600 (elapsed: 63296)
    <info> app: SysTick state: 1266280 (elapsed: 63320)
    <info> app: SysTick state: 1202976 (elapsed: 63304)
    <info> app: SysTick state: 1139668 (elapsed: 63308)
    <info> app: SysTick state: 1076352 (elapsed: 63316)
    <info> app: SysTick state: 1013040 (elapsed: 63312)
    <info> app: SysTick state: 949732 (elapsed: 63308)
    <info> app: SysTick state: 886400 (elapsed: 63332)
    <info> app: SysTick state: 759788 (elapsed: 63300)
    <info> app: SysTick state: 696496 (elapsed: 63292)
    <info> app: SysTick state: 633220 (elapsed: 63276)
    <info> app: SysTick state: 569920 (elapsed: 63300)
    <info> app: SysTick state: 506616 (elapsed: 63304)
    <info> app: SysTick state: 443304 (elapsed: 63312)
    <info> app: SysTick state: 380016 (elapsed: 63288)
    <info> app: SysTick state: 316712 (elapsed: 63304)
    <info> app: SysTick state: 253444 (elapsed: 63268)
    <info> app: SysTick state: 190176 (elapsed: 63268)
    <info> app: SysTick state: 126888 (elapsed: 63288)
    <info> app: SysTick state: 63580 (elapsed: 63308)
    <info> app: SysTick state: 284 (elapsed: 63296)
    <info> app: SysTick state: 16714188 (elapsed: 63312)
    <info> app: SysTick state: 16650884 (elapsed: 63304)
    <info> app: SysTick state: 16587596 (elapsed: 63288)
    <info> app: SysTick state: 16461000 (elapsed: 63292)
    <info> app: SysTick state: 16397700 (elapsed: 63300)
    <info> app: SysTick state: 16334392 (elapsed: 63308)
    <info> app: SysTick state: 16271100 (elapsed: 63292)
    <info> app: SysTick state: 16207788 (elapsed: 63312)
    <info> app: SysTick state: 16144496 (elapsed: 63292)
    <info> app: SysTick state: 16017916 (elapsed: 63276)
    <info> app: SysTick state: 15954636 (elapsed: 63280)
    <info> app: SysTick state: 15891356 (elapsed: 63280)
    <info> app: SysTick state: 15828064 (elapsed: 63292)
    <info> app: SysTick state: 15764796 (elapsed: 63268)
    <info> app: SysTick state: 15701504 (elapsed: 63292)
    <info> app: SysTick state: 15638216 (elapsed: 63288)
    <info> app: SysTick state: 15574920 (elapsed: 63296)
    <info> app: SysTick state: 15511616 (elapsed: 63304)
    <info> app: SysTick state: 15448328 (elapsed: 63288)
    <info> app: SysTick state: 15385028 (elapsed: 63300)
    <info> app: SysTick state: 15321740 (elapsed: 63288)
    <info> app: SysTick state: 15258460 (elapsed: 63280)
    <info> app: SysTick state: 15195184 (elapsed: 63276)
    <info> app: SysTick state: 15131892 (elapsed: 63292)
    <info> app: SysTick state: 15068604 (elapsed: 63288)
    <info> app: SysTick state: 14941988 (elapsed: 63308)
    <info> app: SysTick state: 14878700 (elapsed: 63288)
    <info> app: SysTick state: 14815416 (elapsed: 63284)
    <info> app: SysTick state: 14752136 (elapsed: 63280)
    <info> app: SysTick state: 14688852 (elapsed: 63284)
    <info> app: SysTick state: 14625568 (elapsed: 63284)
    <info> app: SysTick state: 14498972 (elapsed: 63300)
    <info> app: SysTick state: 14435664 (elapsed: 63308)
    <info> app: SysTick state: 14372372 (elapsed: 63292)
    <info> app: SysTick state: 14309076 (elapsed: 63296)
    <info> app: SysTick state: 14245760 (elapsed: 63316)
    <info> app: SysTick state: 14182456 (elapsed: 63304)
    <info> app: SysTick state: 14119160 (elapsed: 63296)
    <info> app: SysTick state: 14055856 (elapsed: 63304)
    <info> app: SysTick state: 13992540 (elapsed: 63316)
    <info> app: SysTick state: 13929232 (elapsed: 63308)
    <info> app: SysTick state: 13865940 (elapsed: 63292)
    <info> app: SysTick state: 13802648 (elapsed: 63292)
    <info> app: SysTick state: 13739348 (elapsed: 63300)
    <info> app: SysTick state: 13676060 (elapsed: 63288)
    <info> app: SysTick state: 13612748 (elapsed: 63312)
    <info> app: SysTick state: 13549444 (elapsed: 63304)
    <info> app: SysTick state: 13422864 (elapsed: 63284)
    <info> app: SysTick state: 13359588 (elapsed: 63276)
    <info> app: SysTick state: 13296316 (elapsed: 63272)
    <info> app: SysTick state: 13233028 (elapsed: 63288)
    <info> app: SysTick state: 13169724 (elapsed: 63304)
    <info> app: SysTick state: 13106432 (elapsed: 63292)
    <info> app: SysTick state: 13043124 (elapsed: 63308)
    <info> app: SysTick state: 12979804 (elapsed: 63320)
    <info> app: SysTick state: 12916508 (elapsed: 63296)
    <info> app: SysTick state: 12853192 (elapsed: 63316)
    <info> app: SysTick state: 12789884 (elapsed: 63308)
    <info> app: SysTick state: 12726588 (elapsed: 63296)
    <info> app: SysTick state: 12663276 (elapsed: 63312)
    <info> app: SysTick state: 12599968 (elapsed: 63308)
    <info> app: SysTick state: 12536660 (elapsed: 63308)
    <info> app: SysTick state: 12473352 (elapsed: 63308)
    <info> app: SysTick state: 12410036 (elapsed: 63316)
    <info> app: SysTick state: 12346704 (elapsed: 63332)
    <info> app: SysTick state: 12283388 (elapsed: 63316)
    <info> app: SysTick state: 12220064 (elapsed: 63324)
    <info> app: SysTick state: 12156744 (elapsed: 63320)
    <info> app: SysTick state: 12093420 (elapsed: 63324)
    <info> app: SysTick state: 12030112 (elapsed: 63308)
    <info> app: SysTick state: 11966800 (elapsed: 63312)
    <info> app: SysTick state: 11840192 (elapsed: 63320)
    <info> app: SysTick state: 11776876 (elapsed: 63316)
    <info> app: SysTick state: 11713544 (elapsed: 63332)
    <info> app: SysTick state: 11650220 (elapsed: 63324)
    <info> app: SysTick state: 11586912 (elapsed: 63308)
    <info> app: SysTick state: 11523612 (elapsed: 63300)
    <info> app: SysTick state: 11460320 (elapsed: 63292)
    <info> app: SysTick state: 11397040 (elapsed: 63280)
    <info> app: SysTick state: 11333748 (elapsed: 63292)
    <info> app: SysTick state: 11270440 (elapsed: 63308)
    <info> app: SysTick state: 11207128 (elapsed: 63312)
    <info> app: SysTick state: 11143820 (elapsed: 63308)
    <info> app: SysTick state: 11080500 (elapsed: 63320)
    <info> app: SysTick state: 11017180 (elapsed: 63320)
    <info> app: SysTick state: 10953872 (elapsed: 63308)
    <info> app: SysTick state: 10890536 (elapsed: 63336)
    <info> app: SysTick state: 10827224 (elapsed: 63312)
    <info> app: SysTick state: 10763916 (elapsed: 63308)
    <info> app: SysTick state: 10700588 (elapsed: 63328)
    <info> app: SysTick state: 10637256 (elapsed: 63332)
    <info> app: SysTick state: 10573940 (elapsed: 63316)
    <info> app: SysTick state: 10510640 (elapsed: 63300)
    <info> app: SysTick state: 10447332 (elapsed: 63308)
    <info> app: SysTick state: 10384036 (elapsed: 63296)
    <info> app: SysTick state: 10257448 (elapsed: 63292)
    <info> app: SysTick state: 10194132 (elapsed: 63316)
    <info> app: SysTick state: 10130824 (elapsed: 63308)
    <info> app: SysTick state: 10067528 (elapsed: 63296)
    <info> app: SysTick state: 10004220 (elapsed: 63308)
    <info> app: SysTick state: 9940916 (elapsed: 63304)
    <info> app: SysTick state: 9877596 (elapsed: 63320)
    <info> app: SysTick state: 9814284 (elapsed: 63312)
    <info> app: SysTick state: 9750996 (elapsed: 63288)
    <info> app: SysTick state: 9687704 (elapsed: 63292)
    <info> app: SysTick state: 9624412 (elapsed: 63292)
    <info> app: SysTick state: 9561112 (elapsed: 63300)
    <info> app: SysTick state: 9497808 (elapsed: 63304)
    <info> app: SysTick state: 9434500 (elapsed: 63308)
    <info> app: SysTick state: 9371204 (elapsed: 63296)
    <info> app: SysTick state: 9307920 (elapsed: 63284)
    <info> app: SysTick state: 9244616 (elapsed: 63304)
    <info> app: SysTick state: 9181312 (elapsed: 63304)
    <info> app: SysTick state: 9118004 (elapsed: 63308)
    <info> app: SysTick state: 9054704 (elapsed: 63300)
    <info> app: SysTick state: 8991400 (elapsed: 63304)
    <info> app: SysTick state: 8928084 (elapsed: 63316)
    <info> app: SysTick state: 8864784 (elapsed: 63300)
    <info> app: SysTick state: 8801460 (elapsed: 63324)
    <info> app: SysTick state: 8674836 (elapsed: 63328)
    <info> app: SysTick state: 8611532 (elapsed: 63304)
    <info> app: SysTick state: 8548232 (elapsed: 63300)
    <info> app: SysTick state: 8484920 (elapsed: 63312)
    <info> app: SysTick state: 8421592 (elapsed: 63328)
    <info> app: SysTick state: 8358276 (elapsed: 63316)
    <info> app: SysTick state: 8294936 (elapsed: 63340)
    <info> app: SysTick state: 8231620 (elapsed: 63316)
    <info> app: SysTick state: 8168308 (elapsed: 63312)
    <info> app: SysTick state: 8105000 (elapsed: 63308)
    <info> app: SysTick state: 8041692 (elapsed: 63308)
    <info> app: SysTick state: 7978376 (elapsed: 63316)
    <info> app: SysTick state: 7915068 (elapsed: 63308)
    <info> app: SysTick state: 7851756 (elapsed: 63312)
    <info> app: SysTick state: 7788460 (elapsed: 63296)
    <info> app: SysTick state: 7725164 (elapsed: 63296)
    <info> app: SysTick state: 7661876 (elapsed: 63288)
    <info> app: SysTick state: 7598584 (elapsed: 63292)
    <info> app: SysTick state: 7535276 (elapsed: 63308)
    <info> app: SysTick state: 7471996 (elapsed: 63280)
    <info> app: SysTick state: 7408724 (elapsed: 63272)
    <info> app: SysTick state: 7345440 (elapsed: 63284)
    <info> app: SysTick state: 7282156 (elapsed: 63284)
    <info> app: SysTick state: 7218876 (elapsed: 63280)
    <info> app: SysTick state: 7155620 (elapsed: 63256)
    <info> app: SysTick state: 7029084 (elapsed: 63268)
    <info> app: SysTick state: 6965828 (elapsed: 63256)

    JohnCC said:
    Is there any situation where this value will change?

    Well, a problem here is that use use another timer to read this value every x time, and that timer will have same variation, depending on its reference clock etc. As you do this in SW, you are also affected by other same or higher priority interrupts etc in a real application, and any critical sections etc (which disabled interrupt for a short time).

    Also, this depends on the accuracy of the HFCLK. In my example above I do not start the HFXO, so the accuracy comes from tine HFINT, which has several percent variation.

    (Note that if you need to match this time with som external signal from GPIOTE, a timer peripheral would be much more sensible as then you could do this in HW via PPI, so that SW does not introduce any unpredictable delays.)

    Edit: I should perhaps mention that the sample I did like this to make it close to what I though you did. If you just want to wait for a duration and get a interrupt at a specific time using SysTick you should refer to the Blinky SysTick Example.

Related