#[non_exhaustive]pub struct ASRC<'a> { /* private fields */ }unstable only.Expand description
ASRC peripheral singleton
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Implementations§
Source§impl ASRC<'_>
impl ASRC<'_>
Sourcepub unsafe fn steal() -> Self
pub unsafe fn steal() -> Self
Unsafely creates an instance of this peripheral out of thin air.
§Safety
The caller must ensure that only one instance of this type is used at a time.
Sourcepub unsafe fn clone_unchecked(&self) -> Self
pub unsafe fn clone_unchecked(&self) -> Self
Unsafely clone this peripheral reference.
§Safety
The caller must ensure that only one instance of this type is used at a time.
Sourcepub fn reborrow(&mut self) -> ASRC<'_>
pub fn reborrow(&mut self) -> ASRC<'_>
Creates a new peripheral reference with a shorter lifetime.
Use this method to keep working with the peripheral after the driver that consumes it is dropped.
Sourcepub fn bind_chnl0_interrupt(&self, handler: InterruptHandler)
pub fn bind_chnl0_interrupt(&self, handler: InterruptHandler)
Binds an interrupt handler to the corresponding interrupt for this peripheral, and enables the interrupt.
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn enable_chnl0_interrupt(&self, priority: Priority)
pub fn enable_chnl0_interrupt(&self, priority: Priority)
Enables the ASRC_CHNL0 peripheral interrupt on the given priority level.
A suitable interrupt handler must be set up before the first interrupt
is triggered; otherwise the default handler panics.
To set up an interrupt handler, use Self::bind_chnl0_interrupt or create a function that has the same (non-mangled) name as the interrupt to handle.
§Examples
use esp_hal::interrupt::Priority;
#[unsafe(no_mangle)]
unsafe extern "C" fn ASRC_CHNL0() {
// do something
}
peripherals.ASRC.enable_chnl0_interrupt(Priority::Priority1);
peripherals.ASRC.disable_chnl0_interrupt_on_all_cores();Sourcepub fn disable_chnl0_interrupt(&self)
pub fn disable_chnl0_interrupt(&self)
Disables the ASRC_CHNL0 peripheral interrupt handler on the current CPU core.
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn disable_chnl0_interrupt_on_all_cores(&self)
pub fn disable_chnl0_interrupt_on_all_cores(&self)
Disables the ASRC_CHNL0 peripheral interrupt handler on all cores.
Sourcepub fn bind_chnl1_interrupt(&self, handler: InterruptHandler)
pub fn bind_chnl1_interrupt(&self, handler: InterruptHandler)
Binds an interrupt handler to the corresponding interrupt for this peripheral, and enables the interrupt.
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn enable_chnl1_interrupt(&self, priority: Priority)
pub fn enable_chnl1_interrupt(&self, priority: Priority)
Enables the ASRC_CHNL1 peripheral interrupt on the given priority level.
A suitable interrupt handler must be set up before the first interrupt
is triggered; otherwise the default handler panics.
To set up an interrupt handler, use Self::bind_chnl1_interrupt or create a function that has the same (non-mangled) name as the interrupt to handle.
§Examples
use esp_hal::interrupt::Priority;
#[unsafe(no_mangle)]
unsafe extern "C" fn ASRC_CHNL1() {
// do something
}
peripherals.ASRC.enable_chnl1_interrupt(Priority::Priority1);
peripherals.ASRC.disable_chnl1_interrupt_on_all_cores();Sourcepub fn disable_chnl1_interrupt(&self)
pub fn disable_chnl1_interrupt(&self)
Disables the ASRC_CHNL1 peripheral interrupt handler on the current CPU core.
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn disable_chnl1_interrupt_on_all_cores(&self)
pub fn disable_chnl1_interrupt_on_all_cores(&self)
Disables the ASRC_CHNL1 peripheral interrupt handler on all cores.
Source§impl ASRC<'_>
impl ASRC<'_>
Sourcepub const PTR: *const <ASRC as Deref>::Target = pac::ASRC::PTR
pub const PTR: *const <ASRC as Deref>::Target = pac::ASRC::PTR
Pointer to the register block
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub const fn ptr() -> *const <ASRC as Deref>::Target
pub const fn ptr() -> *const <ASRC as Deref>::Target
Return the pointer to the register block
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn regs<'a>() -> &'a <ASRC as Deref>::Target
pub fn regs<'a>() -> &'a <ASRC as Deref>::Target
Return a reference to the register block
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.
Sourcepub fn register_block(&self) -> &<ASRC as Deref>::Target
pub fn register_block(&self) -> &<ASRC as Deref>::Target
Return a reference to the register block
§Stability
This API is marked as unstable and is only available when the unstable
crate feature is enabled. This comes with no stability guarantees, and could be changed
or removed at any time.