From 36279e555f482b2b58553ffedc7c4c41b13d2611 Mon Sep 17 00:00:00 2001 From: Sihyung Woo <75494566+sihyung-maxim@users.noreply.github.com> Date: Wed, 12 Jul 2023 09:34:06 -0500 Subject: [PATCH] fix(Examples): Fix double-type subseconds calculation for MAX32655, MAX78000, and MAX78002 (#650) Co-authored-by: sihyung-maxim --- Examples/MAX32572/Barcode_Decoder/src/utils.c | 11 ++++++----- Examples/MAX32572/CameraIF/src/utils.c | 11 ++++++----- .../MAX32572_Demo_BareMetal/src/utils.c | 11 ++++++----- .../MAX32572_Demo_FreeRTOS/src/utils.c | 11 ++++++----- Examples/MAX32572/TFT_Demo/src/utils.c | 11 ++++++----- Examples/MAX32572/lwIP_Ping/main.c | 11 ++++++----- Examples/MAX32572/lwIP_TCP/main.c | 11 ++++++----- Examples/MAX32655/TFT_Demo/src/utils.c | 6 +++--- .../CNN/faceid_evkit-riscv/src/utils.c | 16 +++++++++++----- .../MAX78000/CNN/faceid_evkit/src/utils.c | 11 ++++++----- .../CNN/facial_recognition/src/utils.c | 16 +++++++++++----- Examples/MAX78000/CameraIF/utils.c | 19 ++++++++++--------- Examples/MAX78000/TFT_Demo/src/utils.c | 11 ++++++----- .../MAX78002/CNN/faceid_evkit/src/utils.c | 15 ++++++++++----- .../CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c | 16 +++++++++++----- Examples/MAX78002/CSI2/utils.c | 15 ++++++++++----- Examples/MAX78002/CameraIF/utils.c | 19 ++++++++++--------- 17 files changed, 130 insertions(+), 91 deletions(-) diff --git a/Examples/MAX32572/Barcode_Decoder/src/utils.c b/Examples/MAX32572/Barcode_Decoder/src/utils.c index a3ebcfcce65..73dd18db812 100644 --- a/Examples/MAX32572/Barcode_Decoder/src/utils.c +++ b/Examples/MAX32572/Barcode_Decoder/src/utils.c @@ -55,15 +55,16 @@ void utils_delay_ms(unsigned int ms) unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/CameraIF/src/utils.c b/Examples/MAX32572/CameraIF/src/utils.c index 2c28fb9f10a..206fd3d3057 100644 --- a/Examples/MAX32572/CameraIF/src/utils.c +++ b/Examples/MAX32572/CameraIF/src/utils.c @@ -55,15 +55,16 @@ void utils_delay_ms(unsigned int ms) unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c index d06eee910f7..14c48cb271e 100644 --- a/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c +++ b/Examples/MAX32572/MAX32572_Demo_BareMetal/src/utils.c @@ -44,15 +44,16 @@ /************************ PUBLIC FUNCTIONS *******************************/ unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c index 55a928c132a..70726269e47 100644 --- a/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c +++ b/Examples/MAX32572/MAX32572_Demo_FreeRTOS/src/utils.c @@ -45,15 +45,16 @@ /************************ PUBLIC FUNCTIONS *******************************/ unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/TFT_Demo/src/utils.c b/Examples/MAX32572/TFT_Demo/src/utils.c index 5c19dac806e..0864f29c1ca 100644 --- a/Examples/MAX32572/TFT_Demo/src/utils.c +++ b/Examples/MAX32572/TFT_Demo/src/utils.c @@ -45,15 +45,16 @@ /************************ PUBLIC FUNCTIONS *******************************/ unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/lwIP_Ping/main.c b/Examples/MAX32572/lwIP_Ping/main.c index f302ec93cb7..8c71757044e 100644 --- a/Examples/MAX32572/lwIP_Ping/main.c +++ b/Examples/MAX32572/lwIP_Ping/main.c @@ -120,15 +120,16 @@ static void link_callback_func(struct netif *netif) static unsigned int sys_get_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32572/lwIP_TCP/main.c b/Examples/MAX32572/lwIP_TCP/main.c index 9a51bfebc26..bfb4ecb7323 100644 --- a/Examples/MAX32572/lwIP_TCP/main.c +++ b/Examples/MAX32572/lwIP_TCP/main.c @@ -120,15 +120,16 @@ static void link_callback_func(struct netif *netif) static unsigned int sys_get_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX32655/TFT_Demo/src/utils.c b/Examples/MAX32655/TFT_Demo/src/utils.c index cf6df22dce2..15fe54b23ea 100644 --- a/Examples/MAX32655/TFT_Demo/src/utils.c +++ b/Examples/MAX32655/TFT_Demo/src/utils.c @@ -45,14 +45,14 @@ unsigned int utils_get_time_ms(void) { uint32_t sec, ssec; double subsec; - unsigned int ms; + uint32_t ms; MXC_RTC_GetSubSeconds(&ssec); - subsec = ssec / 4096.0; + subsec = (double)ssec / (double)(4096.0); MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c index c4f023e3ce2..fa849683033 100644 --- a/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c +++ b/Examples/MAX78000/CNN/faceid_evkit-riscv/src/utils.c @@ -44,17 +44,23 @@ /************************ PUBLIC FUNCTIONS *******************************/ +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} + uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78000/CNN/faceid_evkit/src/utils.c b/Examples/MAX78000/CNN/faceid_evkit/src/utils.c index c4f023e3ce2..d563e6092e8 100644 --- a/Examples/MAX78000/CNN/faceid_evkit/src/utils.c +++ b/Examples/MAX78000/CNN/faceid_evkit/src/utils.c @@ -46,15 +46,16 @@ uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78000/CNN/facial_recognition/src/utils.c b/Examples/MAX78000/CNN/facial_recognition/src/utils.c index 04fd5606fb4..d04f91aa676 100644 --- a/Examples/MAX78000/CNN/facial_recognition/src/utils.c +++ b/Examples/MAX78000/CNN/facial_recognition/src/utils.c @@ -44,17 +44,23 @@ /************************ PUBLIC FUNCTIONS *******************************/ +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} + uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78000/CameraIF/utils.c b/Examples/MAX78000/CameraIF/utils.c index 58cb1413088..87cdf974007 100644 --- a/Examples/MAX78000/CameraIF/utils.c +++ b/Examples/MAX78000/CameraIF/utils.c @@ -48,22 +48,23 @@ /***************************** VARIABLES *************************************/ /************************ PUBLIC FUNCTIONS *******************************/ -//void utils_delay_ms(uint32_t ms) -//{ -// MXC_Delay(ms * 1000UL); -//} +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78000/TFT_Demo/src/utils.c b/Examples/MAX78000/TFT_Demo/src/utils.c index b6a56af3e2f..ffd8660378a 100644 --- a/Examples/MAX78000/TFT_Demo/src/utils.c +++ b/Examples/MAX78000/TFT_Demo/src/utils.c @@ -43,15 +43,16 @@ /************************ PUBLIC FUNCTIONS *******************************/ unsigned int utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)4096.0; + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78002/CNN/faceid_evkit/src/utils.c b/Examples/MAX78002/CNN/faceid_evkit/src/utils.c index c4f023e3ce2..5b9a97597b7 100644 --- a/Examples/MAX78002/CNN/faceid_evkit/src/utils.c +++ b/Examples/MAX78002/CNN/faceid_evkit/src/utils.c @@ -43,18 +43,23 @@ /***************************** VARIABLES *************************************/ /************************ PUBLIC FUNCTIONS *******************************/ +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c index 7e79de44eba..80a04421f4b 100644 --- a/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c +++ b/Examples/MAX78002/CNN/pascalvoc-retinanetv7_3/src/cnn/nms.c @@ -87,17 +87,23 @@ void reset_arrays(void) memset(nms_removed, 0, sizeof(nms_removed)); } +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} + uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78002/CSI2/utils.c b/Examples/MAX78002/CSI2/utils.c index b64a28416df..87cdf974007 100644 --- a/Examples/MAX78002/CSI2/utils.c +++ b/Examples/MAX78002/CSI2/utils.c @@ -48,18 +48,23 @@ /***************************** VARIABLES *************************************/ /************************ PUBLIC FUNCTIONS *******************************/ +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; } diff --git a/Examples/MAX78002/CameraIF/utils.c b/Examples/MAX78002/CameraIF/utils.c index 58cb1413088..87cdf974007 100644 --- a/Examples/MAX78002/CameraIF/utils.c +++ b/Examples/MAX78002/CameraIF/utils.c @@ -48,22 +48,23 @@ /***************************** VARIABLES *************************************/ /************************ PUBLIC FUNCTIONS *******************************/ -//void utils_delay_ms(uint32_t ms) -//{ -// MXC_Delay(ms * 1000UL); -//} +void utils_delay_ms(uint32_t ms) +{ + MXC_Delay(ms * 1000UL); +} uint32_t utils_get_time_ms(void) { - uint32_t sec; - uint32_t subsec; + uint32_t sec, ssec; + double subsec; uint32_t ms; - MXC_RTC_GetSubSeconds(&subsec); - subsec /= 4096; + MXC_RTC_GetSubSeconds(&ssec); + subsec = (double)ssec / (double)(4096.0); + MXC_RTC_GetSeconds(&sec); - ms = (sec * 1000) + (subsec * 1000); + ms = (sec * 1000) + (int)(subsec * 1000); return ms; }