diff --git a/pw_chrono/public/pw_chrono/internal/system_clock_macros.h b/pw_chrono/public/pw_chrono/internal/system_clock_macros.h
index 0cc684c..c905dd7 100644
--- a/pw_chrono/public/pw_chrono/internal/system_clock_macros.h
+++ b/pw_chrono/public/pw_chrono/internal/system_clock_macros.h
@@ -13,8 +13,15 @@
 // the License.
 #pragma once
 
+// The C implementation of this macro requires a C99 compound literal. In C++,
+// avoid the compound literal in case -Wc99-extensions is enabled.
+#ifdef __cplusplus
 #define _PW_SYSTEM_CLOCK_DURATION(num_ticks) \
   (pw_chrono_SystemClock_Duration{.ticks = (num_ticks)})
+#else
+#define _PW_SYSTEM_CLOCK_DURATION(num_ticks) \
+  ((pw_chrono_SystemClock_Duration){.ticks = (num_ticks)})
+#endif  // __cplusplus
 
 // clang-format off
 
diff --git a/pw_chrono/system_clock_facade_test.cc b/pw_chrono/system_clock_facade_test.cc
index af17a65..8039760 100644
--- a/pw_chrono/system_clock_facade_test.cc
+++ b/pw_chrono/system_clock_facade_test.cc
@@ -34,6 +34,19 @@
 pw_chrono_SystemClock_Nanoseconds pw_chrono_SystemClock_CallDurationToNsFloor(
     pw_chrono_SystemClock_Duration ticks);
 
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100ms(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10s(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1min(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2h(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100msCeil(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10sCeil(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1minCeil(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2hCeil(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100msFloor(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10sFloor(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1minFloor(void);
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2hFloor(void);
+
 }  // extern "C"
 
 // While testing that the clock ticks (i.e. moves forward) we want to ensure a
@@ -110,5 +123,33 @@
           kRoundedArbitraryDurationInC));
 }
 
+// Though the macros are intended for C use, test them in this file in C++.
+TEST(SystemClock, DurationMacros) {
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_100ms().ticks,
+            PW_SYSTEM_CLOCK_MS(100).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_10s().ticks,
+            PW_SYSTEM_CLOCK_S(10).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_1min().ticks,
+            PW_SYSTEM_CLOCK_MIN(1).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_2h().ticks,
+            PW_SYSTEM_CLOCK_H(2).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_100msCeil().ticks,
+            PW_SYSTEM_CLOCK_MS_CEIL(100).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_10sCeil().ticks,
+            PW_SYSTEM_CLOCK_S_CEIL(10).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_1minCeil().ticks,
+            PW_SYSTEM_CLOCK_MIN_CEIL(1).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_2hCeil().ticks,
+            PW_SYSTEM_CLOCK_H_CEIL(2).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_100msFloor().ticks,
+            PW_SYSTEM_CLOCK_MS_FLOOR(100).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_10sFloor().ticks,
+            PW_SYSTEM_CLOCK_S_FLOOR(10).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_1minFloor().ticks,
+            PW_SYSTEM_CLOCK_MIN_FLOOR(1).ticks);
+  EXPECT_EQ(pw_chrono_SystemClock_Macros_2hFloor().ticks,
+            PW_SYSTEM_CLOCK_H_FLOOR(2).ticks);
+}
+
 }  // namespace
 }  // namespace pw::chrono
diff --git a/pw_chrono/system_clock_facade_test_c.c b/pw_chrono/system_clock_facade_test_c.c
index d8b21b6..6b5e0c4 100644
--- a/pw_chrono/system_clock_facade_test_c.c
+++ b/pw_chrono/system_clock_facade_test_c.c
@@ -31,3 +31,51 @@
     pw_chrono_SystemClock_Duration ticks) {
   return pw_chrono_SystemClock_DurationToNsFloor(ticks);
 }
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100ms(void) {
+  return PW_SYSTEM_CLOCK_MS(100);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10s(void) {
+  return PW_SYSTEM_CLOCK_S(10);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1min(void) {
+  return PW_SYSTEM_CLOCK_MIN(1);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2h(void) {
+  return PW_SYSTEM_CLOCK_H(2);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100msCeil(void) {
+  return PW_SYSTEM_CLOCK_MS_CEIL(100);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10sCeil(void) {
+  return PW_SYSTEM_CLOCK_S_CEIL(10);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1minCeil(void) {
+  return PW_SYSTEM_CLOCK_MIN_CEIL(1);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2hCeil(void) {
+  return PW_SYSTEM_CLOCK_H_CEIL(2);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_100msFloor(void) {
+  return PW_SYSTEM_CLOCK_MS_FLOOR(100);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_10sFloor(void) {
+  return PW_SYSTEM_CLOCK_S_FLOOR(10);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_1minFloor(void) {
+  return PW_SYSTEM_CLOCK_MIN_FLOOR(1);
+}
+
+pw_chrono_SystemClock_Duration pw_chrono_SystemClock_Macros_2hFloor(void) {
+  return PW_SYSTEM_CLOCK_H_FLOOR(2);
+}
diff --git a/pw_chrono_stl/public/pw_chrono_stl/system_clock_config.h b/pw_chrono_stl/public/pw_chrono_stl/system_clock_config.h
index 9766fa2..88ff7db 100644
--- a/pw_chrono_stl/public/pw_chrono_stl/system_clock_config.h
+++ b/pw_chrono_stl/public/pw_chrono_stl/system_clock_config.h
@@ -18,7 +18,7 @@
 // compatibility and we rely on implicit conversion to tell us at compile time
 // whether this is incompatible.
 #define PW_CHRONO_SYSTEM_CLOCK_PERIOD_SECONDS_NUMERATOR 1
-#define PW_CHRONO_SYSTEM_CLOCK_PERIOD_SECONDS_DENOMINATOR 100'000'0000
+#define PW_CHRONO_SYSTEM_CLOCK_PERIOD_SECONDS_DENOMINATOR 1000000000
 
 #ifdef __cplusplus
 
