From 93a7cd4c523380ad02a34e9f74a883ba667e7182 Mon Sep 17 00:00:00 2001 From: Florian Pose Date: Tue, 13 Feb 2018 17:16:01 +0100 Subject: [PATCH] Fixed scheduler settings in dc_user example; use CLOCK_MONOTONIC. --- examples/dc_user/main.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/examples/dc_user/main.c b/examples/dc_user/main.c index ca9b6c0b..2fba8446 100644 --- a/examples/dc_user/main.c +++ b/examples/dc_user/main.c @@ -38,6 +38,7 @@ #include #include #include +#include /* sched_setscheduler() */ /****************************************************************************/ @@ -47,7 +48,7 @@ // Application parameters #define FREQUENCY 1000 -#define CLOCK_TO_USE CLOCK_REALTIME +#define CLOCK_TO_USE CLOCK_MONOTONIC #define MEASURE_TIMING /****************************************************************************/ @@ -313,10 +314,15 @@ int main(int argc, char **argv) return -1; } - pid_t pid = getpid(); - if (setpriority(PRIO_PROCESS, pid, -19)) - fprintf(stderr, "Warning: Failed to set priority: %s\n", - strerror(errno)); + /* Set priority */ + + struct sched_param param = {}; + param.sched_priority = sched_get_priority_max(SCHED_FIFO); + + printf("Using priority %i.", param.sched_priority); + if (sched_setscheduler(0, SCHED_FIFO, ¶m) == -1) { + perror("sched_setscheduler failed"); + } printf("Starting cyclic function.\n"); cyclic_task();