@@ -19,8 +19,8 @@ and incremental encoders.
19
19
is a guide to interfacing interrupts to ` uasyncio ` .
20
20
21
21
[ Event-based programming] ( ./docs/EVENTS.md ) is a guide to a way of writing
22
- applications and device drivers which largely does away with callbacks. Assumes
23
- some knowledge of ` uasyncio ` .
22
+ applications and device drivers which largely does away with callbacks. The doc
23
+ assumes some knowledge of ` uasyncio ` .
24
24
25
25
[ Threading] ( ./docs/THREADING.md ) is a guide to the use of multi-threaded and
26
26
multi-core programming. Code is offered to enable a ` uasyncio ` application to
@@ -51,26 +51,38 @@ Documented in the [tutorial](./docs/TUTORIAL.md).
51
51
Documented in the [ tutorial] ( ./docs/TUTORIAL.md ) . Comprises:
52
52
* Implementations of unsupported CPython primitives including ` barrier ` ,
53
53
` queue ` and others.
54
- * An additional primitive ` Message ` .
55
54
* A software retriggerable monostable timer class ` Delay_ms ` , similar to a
56
55
watchdog.
57
56
* Two primitives enabling waiting on groups of ` Event ` instances.
58
57
59
- ### 1.3.3 Asynchronous device drivers
58
+ ### 1.3.3 Threadsafe primitives
59
+
60
+ [ This doc] ( https://github.com/peterhinch/micropython-async/blob/master/v3/docs/THREADING.md )
61
+ describes issues linking ` uasyncio ` code with code running on other cores or in
62
+ other threads. The ` threadsafe ` directory provides:
63
+
64
+ * A threadsafe primitive ` Message ` .
65
+ * ` ThreadSafeQueue `
66
+ * ` ThreadSafeEvent ` Extends ` ThreadsafeFlag ` .
67
+
68
+ The doc also provides code to enable ` uasyncio ` to handle blocking functions
69
+ using threading.
70
+
71
+ ### 1.3.4 Asynchronous device drivers
60
72
61
73
These are documented
62
74
[ here] ( https://github.com/peterhinch/micropython-async/blob/master/v3/docs/DRIVERS.md ) :
63
75
* Classes for interfacing switches, pushbuttons and ESP32 touch buttons.
64
76
* Drivers for ADC's
65
77
* Drivers for incremental encoders.
66
78
67
- ### 1.3.4 A scheduler
79
+ ### 1.3.5 A scheduler
68
80
69
81
This [ lightweight scheduler] ( ./docs/SCHEDULE.md ) enables tasks to be scheduled
70
82
at future times. These can be assigned in a flexible way: a task might run at
71
83
4.10am on Monday and Friday if there's no "r" in the month.
72
84
73
- ### 1.3.5 Asynchronous interfaces
85
+ ### 1.3.6 Asynchronous interfaces
74
86
75
87
These device drivers are intended as examples of asynchronous code which are
76
88
useful in their own right:
0 commit comments