From 985cdba7b3763346da78890f10a7330e56b3d19b Mon Sep 17 00:00:00 2001 From: nerwalt Date: Tue, 12 Aug 2025 09:56:50 -0600 Subject: Enable temp support on the nrf54l15 Alphabetize ther peripherals in the pac --- embassy-nrf/src/chips/nrf54l15_app.rs | 27 +++++++++++++++------------ embassy-nrf/src/lib.rs | 1 - examples/nrf54l15/src/bin/temp.rs | 25 +++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 13 deletions(-) create mode 100644 examples/nrf54l15/src/bin/temp.rs diff --git a/embassy-nrf/src/chips/nrf54l15_app.rs b/embassy-nrf/src/chips/nrf54l15_app.rs index 2bc346092..ff05bbec0 100644 --- a/embassy-nrf/src/chips/nrf54l15_app.rs +++ b/embassy-nrf/src/chips/nrf54l15_app.rs @@ -206,18 +206,6 @@ pub const EASY_DMA_SIZE: usize = (1 << 16) - 1; pub const FLASH_SIZE: usize = 1536 * 1024; embassy_hal_internal::peripherals! { - // WDT - #[cfg(feature = "_ns")] - WDT, - #[cfg(feature = "_s")] - WDT0, - #[cfg(feature = "_s")] - WDT1, - - #[cfg(feature = "_s")] - // RRAMC - RRAMC, - // GPIO port 0 P0_00, P0_01, @@ -259,6 +247,21 @@ embassy_hal_internal::peripherals! { P2_08, P2_09, P2_10, + + #[cfg(feature = "_s")] + // RRAMC + RRAMC, + + // TEMP + TEMP, + + // WDT + #[cfg(feature = "_ns")] + WDT, + #[cfg(feature = "_s")] + WDT0, + #[cfg(feature = "_s")] + WDT1, } impl_pin!(P0_00, 0, 0); diff --git a/embassy-nrf/src/lib.rs b/embassy-nrf/src/lib.rs index 9c1211f0a..2b72debeb 100644 --- a/embassy-nrf/src/lib.rs +++ b/embassy-nrf/src/lib.rs @@ -152,7 +152,6 @@ pub mod spim; #[cfg(not(feature = "_nrf54l"))] // TODO #[cfg(not(feature = "_nrf51"))] pub mod spis; -#[cfg(not(feature = "_nrf54l"))] // TODO #[cfg(not(any(feature = "_nrf5340-app", feature = "_nrf91")))] pub mod temp; #[cfg(not(feature = "_nrf54l"))] // TODO diff --git a/examples/nrf54l15/src/bin/temp.rs b/examples/nrf54l15/src/bin/temp.rs new file mode 100644 index 000000000..1d28f8ecf --- /dev/null +++ b/examples/nrf54l15/src/bin/temp.rs @@ -0,0 +1,25 @@ +#![no_std] +#![no_main] + +use defmt::info; +use embassy_executor::Spawner; +use embassy_nrf::temp::Temp; +use embassy_nrf::{bind_interrupts, temp}; +use embassy_time::Timer; +use {defmt_rtt as _, panic_probe as _}; + +bind_interrupts!(struct Irqs { + TEMP => temp::InterruptHandler; +}); + +#[embassy_executor::main] +async fn main(_spawner: Spawner) { + let p = embassy_nrf::init(Default::default()); + let mut temp = Temp::new(p.TEMP, Irqs); + + loop { + let value = temp.read().await; + info!("temperature: {}℃", value.to_num::()); + Timer::after_secs(1).await; + } +} -- cgit