Hi
I've tried to modify the base timer from 10ms to 1ms, but in the
execution of the generated RT Thread i get a overrun (of about 5ms...).
I modified for this the "CONFIG_SCHED_TICKLESS" from 10000 to 1000.
My board is a the STM32F746:nucleo-144 board. Are there other
possibilities to get a shorter sampling time in my RT thread?
The code for the sampling time is programmed as:
-------------------------------------------------------------------------
while(!end){
/* periodic task */
T = calcdiff(t_current,T0);
NAME(MODEL,_isr)(T);
t_next.tv_sec = t_current.tv_sec + t_isr.tv_sec;
t_next.tv_nsec = t_current.tv_nsec + t_isr.tv_nsec;
tsnorm(&t_next);
/* Check if Overrun */
clock_gettime(CLOCK_MONOTONIC,&t_current);
if (t_current.tv_sec > t_next.tv_sec ||
(t_current.tv_sec == t_next.tv_sec && t_current.tv_nsec >
t_next.tv_nsec)) {
int usec = (t_current.tv_sec - t_next.tv_sec) * 1000000 +
(t_current.tv_nsec -
t_next.tv_nsec)/1000;
fprintf(stderr, "Base rate overrun by %d us\n", usec);
t_next= t_current;
}
clock_nanosleep(CLOCK_MONOTONIC, TIMER_ABSTIME, &t_next, NULL);
t_current = t_next;
}
---------------------------------------------------------------------
Thanks in advance
Roberto