Модуль 8.3 — Async на встраиваемых системах
Упражнение 8.3.1: Компас
В этом упражнении мы используем драйвер lsm303agr. Хотя в документации это не показано, драйвер поддерживает async, если включить его фичу async.
Посмотрите примеры в репозитории lsm303agr-rs, чтобы понять, как использовать драйвер.
С помощью драйвера lsm303agr реализуйте компас. Для указания направления на северный полюс можно использовать модуль dial. В коде есть несколько мест с todo!() и инструкциями.
Компиляция стартового кода выдаёт множество предупреждений. Они исчезнут, когда вы закончите.
Упражнение 8.3.2: Компас с мигающим индикатором
В примере отправителя и получателя каналов из репозитория embassy показано, как запускать отдельные задачи и использовать каналы для обмена сообщениями между ними. Используя эти знания, заставьте светодиод-индикатор в модуле dial мигать в то время, как снимаются показания магнитометра.
Поскольку в этом упражнении мы не используем defmt, замените вызовы макроса unwrap!(<expr>) на вызовы <expr>.unwrap().