Fix embassy migration guide (#2393)
This commit is contained in:
parent
4c1c6131df
commit
5f6ca8d252
@ -21,8 +21,43 @@ You no longer have to set up clocks and pass them to `esp_hal_embassy::init`.
|
||||
|
||||
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||
- esp_hal_embassy::init(&clocks, timg0);
|
||||
+ esp_hal_embassy::init(timg0);
|
||||
+ esp_hal_embassy::init(timg0.timer0);
|
||||
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
You have to specify a timer instance (that may be a `TimerGroup` timer unit
|
||||
or a `SystemTimer` alarm) or an array of `AnyTimer`s when calling `init`.
|
||||
An example of how you can set multiple timers (for example when using
|
||||
multiple executors):
|
||||
|
||||
```rust
|
||||
use esp_hal::{
|
||||
prelude::*,
|
||||
timer::{
|
||||
AnyTimer,
|
||||
systimer::SystemTimer
|
||||
}
|
||||
};
|
||||
|
||||
#[esp_hal_embassy::main]
|
||||
async fn main(_spawner: Spawner) -> ! {
|
||||
let peripherals = esp_hal::init(esp_hal::Config::default());
|
||||
|
||||
let timg0 = TimerGroup::new(peripherals.TIMG0);
|
||||
let timer0: AnyTimer = timg0.timer0.into();
|
||||
let timer1: AnyTimer = timg0.timer1.into();
|
||||
|
||||
// You can use either a TimerGroup timer, a SystemTimer alarm,
|
||||
// or you can mix and match them as well.
|
||||
let systimer = SystemTimer::new(peripherals.SYSTIMER).split::<Target>();
|
||||
let timer2: AnyTimer = systimer.alarm0;
|
||||
|
||||
esp_hal_embassy::init([timer0, timer1, timer2]);
|
||||
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
Note that you only have to convert into `AnyTimer` if you want to use multiple timers.
|
||||
|
||||
Loading…
Reference in New Issue
Block a user