esp-hal/esp32s3-hal
liebman ac206af656
pulse counter implementation (#328)
* start of pulse counter implementation

* implement interrupts
implement pcnt for esp32, esp32s2, and esp32s3

* implement pcnt for esp32s2

* fix esp32 PCNT signal names

* update PCNT register/fields for cleaned up PAC

* implement events/get_events (choosing what events interrupt)

* added pcnt example: simple encoder configuration

* restrict pcnt::channel::Channel::new() to super

* PcntPin -> PcntSignal
added range checks for thresholds and limits

* PcntSource is a better name I think

* handle error for PCNT Unit configure() in example

* update pac versions for status register change

* cargo fmt

* cargo fmt (examples)

* PcntSource now only stores the source id.
add a critical section to protect the ctrl & isr_en registers

* cargo fmt
2023-01-17 17:04:22 +00:00
..
.cargo Support ESP32-C2 with 26MHz Xtal 2022-12-13 05:15:10 -08:00
examples pulse counter implementation (#328) 2023-01-17 17:04:22 +00:00
ld
src pulse counter implementation (#328) 2023-01-17 17:04:22 +00:00
build.rs
Cargo.toml enable TWAI on ESP32-S3 (#325) 2023-01-03 10:02:01 -08:00
README.md feat: 📝 Update install sections 2022-11-24 08:30:57 -08:00
rust-toolchain.toml

esp32s3-hal

Crates.io docs.rs Crates.io Matrix

no_std HAL for the ESP32-S3 from Espressif. Implements a number of the traits defined by embedded-hal.

This device uses the Xtensa ISA, which is not officially supported by the Rust compiler. In order to develop for this device you must use the Rust compiler fork with Xtensa support found at esp-rs/rust. Refer to the Getting Stared section below for more information.

Documentation

Getting Started

Installing the Rust Compiler

cargo install espup
espup install
# Unix
. $HOME/export-esp.sh
# Windows
%USERPROFILE%\export-esp.ps1

See the Installation chapter of The Rust on ESP Book for more details.

License

Licensed under either of:

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.