pw_chrono: adds the SystemTimer to schedule callbacks

Adds the pw::chrono::SystemTimer facade with STL backend to
schedule callbacks at a specified time in the future.

Change-Id: I2d9f3fe52d214c1ec0ddc152d1450a414339f59e
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/49342
Commit-Queue: Auto-Submit <auto-submit@pigweed.google.com.iam.gserviceaccount.com>
Reviewed-by: Keir Mierle <keir@google.com>
Reviewed-by: Wyatt Hepler <hepler@google.com>
Pigweed-Auto-Submit: Ewout van Bekkum <ewout@google.com>
17 files changed
tree: bac7a2ae7b20a4ed625c19566b66df624687aaf9
  1. build_overrides/
  2. docker/
  3. docs/
  4. pw_allocator/
  5. pw_analog/
  6. pw_arduino_build/
  7. pw_assert/
  8. pw_assert_basic/
  9. pw_assert_log/
  10. pw_base64/
  11. pw_bloat/
  12. pw_blob_store/
  13. pw_boot_armv7m/
  14. pw_build/
  15. pw_bytes/
  16. pw_checksum/
  17. pw_chrono/
  18. pw_chrono_embos/
  19. pw_chrono_freertos/
  20. pw_chrono_stl/
  21. pw_chrono_threadx/
  22. pw_cli/
  23. pw_console/
  24. pw_containers/
  25. pw_cpu_exception/
  26. pw_cpu_exception_cortex_m/
  27. pw_docgen/
  28. pw_doctor/
  29. pw_env_setup/
  30. pw_function/
  31. pw_fuzzer/
  32. pw_hdlc/
  33. pw_hex_dump/
  34. pw_i2c/
  35. pw_interrupt/
  36. pw_interrupt_cortex_m/
  37. pw_kvs/
  38. pw_libc/
  39. pw_log/
  40. pw_log_basic/
  41. pw_log_multisink/
  42. pw_log_null/
  43. pw_log_rpc/
  44. pw_log_sink/
  45. pw_log_tokenized/
  46. pw_malloc/
  47. pw_malloc_freelist/
  48. pw_metric/
  49. pw_minimal_cpp_stdlib/
  50. pw_module/
  51. pw_multisink/
  52. pw_package/
  53. pw_persistent_ram/
  54. pw_polyfill/
  55. pw_preprocessor/
  56. pw_presubmit/
  57. pw_protobuf/
  58. pw_protobuf_compiler/
  59. pw_random/
  60. pw_result/
  61. pw_ring_buffer/
  62. pw_router/
  63. pw_rpc/
  64. pw_snapshot/
  65. pw_span/
  66. pw_status/
  67. pw_stm32cube_build/
  68. pw_stream/
  69. pw_string/
  70. pw_sync/
  71. pw_sync_baremetal/
  72. pw_sync_embos/
  73. pw_sync_freertos/
  74. pw_sync_stl/
  75. pw_sync_threadx/
  76. pw_sys_io/
  77. pw_sys_io_arduino/
  78. pw_sys_io_baremetal_lm3s6965evb/
  79. pw_sys_io_baremetal_stm32f429/
  80. pw_sys_io_stdio/
  81. pw_target_runner/
  82. pw_thread/
  83. pw_thread_embos/
  84. pw_thread_freertos/
  85. pw_thread_stl/
  86. pw_thread_threadx/
  87. pw_tls_client/
  88. pw_tls_client_mbedtls/
  89. pw_tokenizer/
  90. pw_tool/
  91. pw_toolchain/
  92. pw_trace/
  93. pw_trace_tokenized/
  94. pw_transfer/
  95. pw_unit_test/
  96. pw_varint/
  97. pw_watch/
  98. pw_web_ui/
  99. targets/
  100. third_party/
  101. .bazelignore
  102. .bazelrc
  103. .clang-format
  104. .eslintrc.json
  105. .gitattributes
  106. .gitignore
  107. .gn
  108. .prettierrc.js
  109. .pylintrc
  110. activate.bat
  111. AUTHORS
  112. bootstrap.bat
  113. bootstrap.sh
  114. BUILD
  115. BUILD.gn
  116. BUILDCONFIG.gn
  117. CMakeLists.txt
  118. LICENSE
  119. modules.gni
  120. OWNERS
  121. package.json
  122. PW_PLUGINS
  123. README.md
  124. tsconfig.json
  125. WORKSPACE
  126. yarn.lock
README.md

See our website: http://pigweed.dev