From bcc7a7cb026757dba073eda8b6aeadd4fee4f8c0 Mon Sep 17 00:00:00 2001 From: TMRh20 Date: Sat, 2 Mar 2024 09:24:50 -0600 Subject: [PATCH] Fix for SPIDEV & MRAA: delayMicroseconds() (#952) * Update MRAA timer functions - Found MRAA timer functions not working properly - Copy timing functions from SPIDEV * Change / to % in micros function * Corrects timing problems with SPIDEV and MRAA drivers --- utility/MRAA/compatibility.cpp | 2 +- utility/SPIDEV/compatibility.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/utility/MRAA/compatibility.cpp b/utility/MRAA/compatibility.cpp index efed1e7b0..1b1eac313 100644 --- a/utility/MRAA/compatibility.cpp +++ b/utility/MRAA/compatibility.cpp @@ -19,7 +19,7 @@ void __usleep(int microsec) { struct timespec req; // = {0}; req.tv_sec = (time_t)microsec / 1000000; - req.tv_nsec = (microsec / 1000000) * 1000; + req.tv_nsec = (microsec % 1000000) * 1000; clock_nanosleep(CLOCK_REALTIME, 0, &req, NULL); } diff --git a/utility/SPIDEV/compatibility.cpp b/utility/SPIDEV/compatibility.cpp index 6b96f6588..20107d854 100644 --- a/utility/SPIDEV/compatibility.cpp +++ b/utility/SPIDEV/compatibility.cpp @@ -23,7 +23,7 @@ void __usleep(int microsec) { struct timespec req; // = {0}; req.tv_sec = (time_t)microsec / 1000000; - req.tv_nsec = (microsec / 1000000) * 1000; + req.tv_nsec = (microsec % 1000000) * 1000; //nanosleep(&req, (struct timespec *)NULL); clock_nanosleep(CLOCK_REALTIME, 0, &req, NULL); }