docs: Add READMEs for some modules
Change-Id: Ia629b1a5268c2b35ab84bf042ddfca3e26400df3
Reviewed-on: https://pigweed-internal-review.git.corp.google.com/c/pigweed/showcase/rp2/+/73952
Commit-Queue: Auto-Submit <auto-submit@pw-internal-service-accounts.iam.gserviceaccount.com>
Reviewed-by: Armando Montanez <amontanez@google.com>
Presubmit-Verified: CQ Bot Account <pigweed-internal-scoped@luci-project-accounts.iam.gserviceaccount.com>
Pigweed-Auto-Submit: Aaron Green <aarongreen@google.com>
diff --git a/modules/air_sensor/README.md b/modules/air_sensor/README.md
new file mode 100644
index 0000000..17c50d7
--- /dev/null
+++ b/modules/air_sensor/README.md
@@ -0,0 +1,18 @@
+# Air Sensor
+
+The `air_sensor` module provides an interface for interacting with hardware
+components that measure atmospheric conditions such as ambient temperature,
+barometric pressure, relative humidity, etc.
+
+Implementators of this module have one key method that they must provide:
+`AirSensor::DoMeasure`. This method should measure the local conditions and call
+`AirSensor::Update` with the collected data.
+
+Measurements make take some time to perform. Consumers of this module have to
+approaches to handle this delay:
+
+1. Consumers may provide a `pw::sync::ThreadNotification` to
+ `AirSensor::Measure`. The notification will be released when the data is
+ ready.
+2. Consumers may call `AirSensor::MeasureSync` from a thread that can block.
+ This function will not return until the data is ready.
\ No newline at end of file
diff --git a/modules/event_timers/README.md b/modules/event_timers/README.md
new file mode 100644
index 0000000..9e98243
--- /dev/null
+++ b/modules/event_timers/README.md
@@ -0,0 +1,13 @@
+# Event timers
+
+An `EventTimers` object is a collection of `EventTimer`s.
+
+Each `EventTimer` represents a timer that can be started by publishing a
+`TimerRequest` event to the `PubSub`.
+
+A timer is identified by a `pw_tokenizer` token. If a request is handled
+while another request for the same token is pending, the previous request is
+replaced by the new one.
+
+After the timeout given by the request, this object will publish a corresponding
+`TimerExpired` event.
diff --git a/modules/event_timers/event_timers.h b/modules/event_timers/event_timers.h
index d89c8a7..465e84f 100644
--- a/modules/event_timers/event_timers.h
+++ b/modules/event_timers/event_timers.h
@@ -30,7 +30,7 @@
namespace sense {
-/// A collection of concurrent, named timer.
+/// A collection of concurrent, named timers.
///
/// `TimerRequest` events can be handled by subscribing to the `PubSub` and
/// passing them to the `OnTimerRequest` method, e.g.
diff --git a/modules/led/README.md b/modules/led/README.md
new file mode 100644
index 0000000..c15b20c
--- /dev/null
+++ b/modules/led/README.md
@@ -0,0 +1,5 @@
+# LED
+
+This module provides an abstraction for both single-color and multi-color LEDs.
+Single-color LEDs can be driven in either SIO or PWM modes, while multi-color
+LEDs are always handled using PWM.
\ No newline at end of file
diff --git a/modules/morse_code/README.md b/modules/morse_code/README.md
new file mode 100644
index 0000000..7566e32
--- /dev/null
+++ b/modules/morse_code/README.md
@@ -0,0 +1,7 @@
+# Morse code
+
+This module encodes messages using Morse code and a provided output function.
+
+For example, if the output function sets an LED on or off, then calling
+`Encoder::Encode` with a message string will cause the LED to blink the message
+in Morse code.
\ No newline at end of file
diff --git a/modules/pwm/README.md b/modules/pwm/README.md
new file mode 100644
index 0000000..c6c7b8b
--- /dev/null
+++ b/modules/pwm/README.md
@@ -0,0 +1,5 @@
+# PWM
+
+This modules provides an interface for devices connected to pins that can be
+driven by the Pulse Width Modulation (PWM) block. PWM allows for more states
+than simply on or off, such as variable intensity or changing levels over time.
\ No newline at end of file