Skip to main content

WaveformGenerator

Struct WaveformGenerator 

Source
pub struct WaveformGenerator {
    pub acc: u32,
    pub shift: u32,
    /* private fields */
}
Expand description

A 24 bit accumulator is the basis for waveform generation. FREQ is added to the lower 16 bits of the accumulator each cycle. The accumulator is set to zero when TEST is set, and starts counting when TEST is cleared. The noise waveform is taken from intermediate bits of a 23 bit shift register. This register is clocked by bit 19 of the accumulator.

Fields§

§acc: u32§shift: u32

Implementations§

Source§

impl WaveformGenerator

Source

pub fn new(chip_model: ChipModel) -> Self

Source

pub fn get_acc(&self) -> u32

Source

pub fn get_control(&self) -> u8

Source

pub fn get_frequency(&self) -> u16

Source

pub fn get_frequency_hi(&self) -> u8

Source

pub fn get_frequency_lo(&self) -> u8

Source

pub fn get_pulse_width_hi(&self) -> u8

Source

pub fn get_pulse_width_lo(&self) -> u8

Source

pub fn get_shift(&self) -> u32

Source

pub fn get_sync(&self) -> bool

Source

pub fn is_msb_rising(&self) -> bool

Source

pub fn set_acc(&mut self, value: u32)

Source

pub fn set_control(&mut self, value: u8)

Source

pub fn set_frequency_hi(&mut self, value: u8)

Source

pub fn set_frequency_lo(&mut self, value: u8)

Source

pub fn set_pulse_width_hi(&mut self, value: u8)

Source

pub fn set_pulse_width_lo(&mut self, value: u8)

Source

pub fn clock(&mut self)

Source

pub fn clock_delta(&mut self, delta: u32)

Source

pub fn output(&self, sync_source: Option<&WaveformGenerator>) -> u16

12-bit waveform output

Source

pub fn reset(&mut self)

Trait Implementations§

Source§

impl Clone for WaveformGenerator

Source§

fn clone(&self) -> WaveformGenerator

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for WaveformGenerator

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.