Hi Michal, Please take a look at this wiki page, it could help you to understand the issue with sleep take one more context switch cycle: https://cwiki.apache.org/confluence/display/NUTTX/Short+Time+Delays
Unfortunately the Timer Hook that could help you in this case will not work in Tickless mode (according with the wiki). BR, Alan On 7/11/21, Michal Lenc <michall...@seznam.cz> wrote: > > Hello, > > > > > I´ve finished the implementation of tickless mode support for iMXRT MCU, > which is a part of my Google Summor of Code project (https://cwiki.apache. > org/confluence/display/NUTTX/%5B2021%5D+NuttX+Support+for+Rapid+Control+ > Applications+Development+with+pysimCoder). The source code can be found > here > in my NuttX fork (https://github.com/michallenc/incubator-nuttx/blob/imxrt- > tickless/arch/arm/src/imxrt/imxrt_tickless.c), I used the alarm option to > take the advantage of using just one timer running in free-run mode. I did > some tests with applications (ADC reading example and control application > of > DC motor designed with pysimCoder) and they are working fine, but command > "sleep" bothers me a little bit. > > > > > When I compile normal NuttX nsh configuration with tickless mode, "sleep 2" > > is accurate and takes about 2.0001 seconds. But when I use some bigger > configuration (like configurating PWM, qencoder, GPIO, ethernet and so on > for DC motor control), "sleep 2" is much less accurate. Sometimes it really > > takes 2 seconds, but sometimes I get values like 1.9947 (I am using "time" > command). I did found out that sleep command takes one tick more in normal > mode, can some of those inaccuracies also happen in tickless mode? > > > > > The other source of the inaccuracy can be in clock frequency. I use 32 kHz > clock source, but this value cannot be properly represented by CONFIG_USEC_ > PER_TICK, which I set to 31 (which is aproximately 32.25 kHz). But 32 kHz > clock source seems to be the only possible in iMXRT as others are to hight > (tens or hundreds of MHz) and can´t be represended by the timer prescaler > divider. Did anyone have similar problems when implementing tickless mode > for some platforms? > > > > > Thanks for your inputs. > > > Best regards, > Michal Lenc