diff --git a/include/etl/private/chrono/clocks.h b/include/etl/private/chrono/clocks.h index 595290d7..cbdbfd26 100644 --- a/include/etl/private/chrono/clocks.h +++ b/include/etl/private/chrono/clocks.h @@ -33,7 +33,11 @@ SOFTWARE. #endif #if !defined(ETL_CHRONO_SYSTEM_CLOCK_DURATION) - #define ETL_CHRONO_SYSTEM_CLOCK_DURATION etl::chrono::nanoseconds + #if (INT_MAX >= INT32_MAX) + #define ETL_CHRONO_SYSTEM_CLOCK_DURATION etl::chrono::nanoseconds + #else + #define ETL_CHRONO_SYSTEM_CLOCK_DURATION etl::chrono::milliseconds + #endif #endif #if !defined(ETL_CHRONO_SYSTEM_CLOCK_IS_STEADY) @@ -41,7 +45,11 @@ SOFTWARE. #endif #if !defined(ETL_CHRONO_HIGH_RESOLUTION_CLOCK_DURATION) - #define ETL_CHRONO_HIGH_RESOLUTION_CLOCK_DURATION etl::chrono::nanoseconds + #if (INT_MAX >= INT32_MAX) + #define ETL_CHRONO_HIGH_RESOLUTION_CLOCK_DURATION etl::chrono::nanoseconds + #else + #define ETL_CHRONO_HIGH_RESOLUTION_CLOCK_DURATION etl::chrono::milliseconds + #endif #endif #if !defined(ETL_CHRONO_HIGH_RESOLUTION_CLOCK_IS_STEADY) @@ -49,7 +57,11 @@ SOFTWARE. #endif #if !defined(ETL_CHRONO_STEADY_CLOCK_DURATION) -#define ETL_CHRONO_STEADY_CLOCK_DURATION etl::chrono::nanoseconds + #if (INT_MAX >= INT32_MAX) + #define ETL_CHRONO_STEADY_CLOCK_DURATION etl::chrono::nanoseconds + #else + #define ETL_CHRONO_STEADY_CLOCK_DURATION etl::chrono::milliseconds + #endif #endif extern "C" ETL_CHRONO_SYSTEM_CLOCK_DURATION::rep etl_get_system_clock(); diff --git a/include/etl/private/chrono/duration.h b/include/etl/private/chrono/duration.h index cd81e9d9..043174b0 100644 --- a/include/etl/private/chrono/duration.h +++ b/include/etl/private/chrono/duration.h @@ -315,13 +315,17 @@ namespace etl /// Duration types //*********************************************************************** #if (ETL_USING_64BIT_TYPES) + #if (INT_MAX >= INT32_MAX) using nanoseconds = etl::chrono::duration; using microseconds = etl::chrono::duration; + #endif using milliseconds = etl::chrono::duration; using seconds = etl::chrono::duration>; #else + #if (INT_MAX >= INT32_MAX) using nanoseconds = etl::chrono::duration; using microseconds = etl::chrono::duration; + #endif using milliseconds = etl::chrono::duration; using seconds = etl::chrono::duration>; #endif @@ -811,6 +815,7 @@ namespace etl return etl::chrono::duration(s); } +#if (INT_MAX >= INT32_MAX) //*********************************************************************** /// Literal for microseconds duration //*********************************************************************** @@ -848,7 +853,7 @@ namespace etl } //*********************************************************************** - /// Literal for floating point microseconds duration + /// Literal for floating point nanoseconds duration //*********************************************************************** #if ETL_USING_VERBOSE_CHRONO_LITERALS inline ETL_CONSTEXPR14 etl::chrono::duration operator ""_nanoseconds(long double s) ETL_NOEXCEPT @@ -858,6 +863,7 @@ namespace etl { return etl::chrono::duration(s); } +#endif } } }