mirror of
https://github.com/esp-rs/esp-hal.git
synced 2025-09-28 04:40:52 +00:00

* Create virtual peripherals for `ADC`/`DAC` * Refactor the `analog::dac` module * Refactor the `analog::adc` module * Decouple the ADC driver from the `embedded-hal` traits * Update `CHANGELOG.md` * Seal the `AdcCalScheme` trait, reduce visibility of `AdcCalEfuse` trait * Remove `APB_SARADC`/`SENS` peripherals from the `Peripherals` struct
51 lines
1.4 KiB
Rust
51 lines
1.4 KiB
Rust
//! # Peripheral Instances
|
|
//!
|
|
//! This module creates singleton instances for each of the various peripherals,
|
|
//! and re-exports them to allow users to access and use them in their
|
|
//! applications.
|
|
//!
|
|
//! Should be noted that that the module also re-exports the [Interrupt] enum
|
|
//! from the PAC, allowing users to handle interrupts associated with these
|
|
//! peripherals.
|
|
|
|
use esp32c2 as pac;
|
|
// We need to export this for users to use
|
|
pub use pac::Interrupt;
|
|
|
|
// We need to export this in the hal for the drivers to use
|
|
pub(crate) use self::peripherals::*;
|
|
|
|
// Note that certain are marked with `virtual` in the invocation of the
|
|
// `peripherals!` macro below. Basically, this indicates there's no physical
|
|
// peripheral (no `PSRAM`, `RADIO`, etc. peripheral in the PACs), so we're
|
|
// creating "virtual peripherals" for them.
|
|
crate::peripherals! {
|
|
ADC1 <= virtual,
|
|
APB_CTRL <= APB_CTRL,
|
|
ASSIST_DEBUG <= ASSIST_DEBUG,
|
|
BT <= virtual,
|
|
DMA <= DMA,
|
|
ECC <= ECC,
|
|
EFUSE <= EFUSE,
|
|
EXTMEM <= EXTMEM,
|
|
GPIO <= GPIO,
|
|
I2C0 <= I2C0,
|
|
INTERRUPT_CORE0 <= INTERRUPT_CORE0,
|
|
IO_MUX <= IO_MUX,
|
|
LEDC <= LEDC,
|
|
LPWR <= RTC_CNTL,
|
|
RNG <= RNG,
|
|
SENSITIVE <= SENSITIVE,
|
|
SHA <= SHA,
|
|
SPI0 <= SPI0,
|
|
SPI1 <= SPI1,
|
|
SPI2 <= SPI2,
|
|
SYSTEM <= SYSTEM,
|
|
SYSTIMER <= SYSTIMER,
|
|
TIMG0 <= TIMG0,
|
|
UART0 <= UART0,
|
|
UART1 <= UART1,
|
|
WIFI <= virtual,
|
|
XTS_AES <= XTS_AES,
|
|
}
|