pub struct Rx<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING: Packing<WORD_SIZE>> { /* private fields */ }Expand description
A SAI receive half
Implementations§
Source§impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING: Packing<WORD_SIZE>> Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING: Packing<WORD_SIZE>> Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
Sourcepub fn set_enable(&mut self, en: bool)
pub fn set_enable(&mut self, en: bool)
Enable/Disable transmission
Sourcepub fn interrupts(&self) -> Interrupts
pub fn interrupts(&self) -> Interrupts
Return the interrupt flags.
The interrupt flags indicate the reasons that this peripheral may generate an interrupt.
Sourcepub fn set_interrupts(&mut self, interrutps: Interrupts)
pub fn set_interrupts(&mut self, interrutps: Interrupts)
Set the interrupt flags for this SAI transmitter.
Sourcepub fn status(&mut self) -> Status
pub fn status(&mut self) -> Status
Get the status register of the transmitter, this can be used in conjunction with status field masks to determine the state of the SAI peripheral.
Sourcepub fn clear_status(&mut self, flags: Status)
pub fn clear_status(&mut self, flags: Status)
Clear status error flags
Sourcepub fn fifo_position(&mut self, chan: usize) -> (u32, u32)
pub fn fifo_position(&mut self, chan: usize) -> (u32, u32)
Get the FIFO write and read position
use imxrt_ral::sai::{SAI1, RCSR};
use imxrt_hal::sai::{Rx, PackingNone, Sai, SaiConfig};
let sai = Sai::without_pins(unsafe { SAI1::instance() }, 0, 0);
let (Some(mut sai_rx), None) = sai.split::<16, 2, PackingNone>(&SaiConfig::i2s(8)) else { panic!() };
let (write_pos, read_pos) = sai_rx.fifo_position(0);Source§impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 32, FRAME_SIZE, PackingNone>
impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 32, FRAME_SIZE, PackingNone>
Sourcepub fn read_frame(&mut self, chan: usize, frame: &mut [u32; FRAME_SIZE])
pub fn read_frame(&mut self, chan: usize, frame: &mut [u32; FRAME_SIZE])
Read without checks or blocking a single audio frame from channels FIFO
Source§impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 16, FRAME_SIZE, PackingNone>
impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 16, FRAME_SIZE, PackingNone>
Sourcepub fn read_frame(&mut self, chan: usize, frame: &mut [u16; FRAME_SIZE])
pub fn read_frame(&mut self, chan: usize, frame: &mut [u16; FRAME_SIZE])
Read without checks or blocking a single audio frame from channels FIFO
Source§impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 8, FRAME_SIZE, PackingNone>
impl<const N: u8, const FRAME_SIZE: usize> Rx<N, 8, FRAME_SIZE, PackingNone>
Sourcepub fn read_frame(&mut self, chan: usize, frame: &mut [u8; FRAME_SIZE])
pub fn read_frame(&mut self, chan: usize, frame: &mut [u8; FRAME_SIZE])
Read without checks or blocking a single audio frame from channels FIFO
Auto Trait Implementations§
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> Freeze for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> !RefUnwindSafe for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> Send for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>where
PACKING: Send,
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> !Sync for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> Unpin for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>where
PACKING: Unpin,
impl<const N: u8, const WORD_SIZE: u8, const FRAME_SIZE: usize, PACKING> !UnwindSafe for Rx<N, WORD_SIZE, FRAME_SIZE, PACKING>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more