Struct itsybitsy_m4::GenericClockController

source ·
pub struct GenericClockController { /* private fields */ }
Expand description

GenericClockController encapsulates the GCLK hardware. It provides a type safe way to configure the system clocks. Initializing the GenericClockController instance configures the system to run at 120MHz by taking the DFLL48 and feeding it into the DPLL0 hardware which multiplies the signal by 2.5x.

Implementations§

source§

impl GenericClockController

source

pub fn with_internal_32kosc( gclk: GCLK, mclk: &mut MCLK, osc32kctrl: &mut OSC32KCTRL, oscctrl: &mut OSCCTRL, nvmctrl: &mut NVMCTRL ) -> GenericClockController

Reset the clock controller, configure the system to run at 120Mhz and reset various clock dividers.

source

pub fn with_external_32kosc( gclk: GCLK, mclk: &mut MCLK, osc32kctrl: &mut OSC32KCTRL, oscctrl: &mut OSCCTRL, nvmctrl: &mut NVMCTRL ) -> GenericClockController

Reset the clock controller, configure the system to run at 120Mhz and reset various clock dividers.

source

pub fn gclk0(&mut self) -> GClock

Returns a GClock for gclk0, the 120MHz oscillator.

source

pub fn gclk1(&mut self) -> GClock

Returns a GClock for gclk1, the 32KHz oscillator.

source

pub fn get_gclk(&mut self, gclk: GEN_A) -> Option<GClock>

Returns the GClock for the specified clock generator. If that clock generator has not yet been configured, returns None.

source

pub fn configure_gclk_divider_and_source( &mut self, gclk: GEN_A, divider: u16, src: SRC_A, improve_duty_cycle: bool ) -> Option<GClock>

Configures a clock generator with the specified divider and source. divider is a linear divider to be applied to the clock source. While the hardware also supports an exponential divider, this function doesn’t expose that functionality at this time. improve_duty_cycle is a boolean that, when set to true, enables a 50/50 duty cycle for odd divider values. Returns a GClock for the configured clock generator. Returns None if the clock generator has already been configured.

source

pub fn configure_standby(&mut self, gclk: GEN_A, enable: bool)

Enables or disables the given GClk from operation in standby.

source§

impl GenericClockController

source

pub fn tc0_tc1(&mut self, generator: &GClock) -> Option<Tc0Tc1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tcc0_tcc1(&mut self, generator: &GClock) -> Option<Tcc0Tcc1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tc2_tc3(&mut self, generator: &GClock) -> Option<Tc2Tc3Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tcc2_tcc3(&mut self, generator: &GClock) -> Option<Tcc2Tcc3Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tc4_tc5(&mut self, generator: &GClock) -> Option<Tc4Tc5Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tcc4(&mut self, generator: &GClock) -> Option<Tcc4Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn tc6_tc7(&mut self, generator: &GClock) -> Option<Tc6Tc7Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom0_core(&mut self, generator: &GClock) -> Option<Sercom0CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom1_core(&mut self, generator: &GClock) -> Option<Sercom1CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom2_core(&mut self, generator: &GClock) -> Option<Sercom2CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom3_core(&mut self, generator: &GClock) -> Option<Sercom3CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom4_core(&mut self, generator: &GClock) -> Option<Sercom4CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sercom5_core(&mut self, generator: &GClock) -> Option<Sercom5CoreClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn usb(&mut self, generator: &GClock) -> Option<UsbClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn adc0(&mut self, generator: &GClock) -> Option<Adc0Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn adc1(&mut self, generator: &GClock) -> Option<Adc1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn eic(&mut self, generator: &GClock) -> Option<EicClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn freq_m_msr(&mut self, generator: &GClock) -> Option<FreqmMsrClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn freq_m_ref(&mut self, generator: &GClock) -> Option<FreqmRefClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys0(&mut self, generator: &GClock) -> Option<Evsys0Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys1(&mut self, generator: &GClock) -> Option<Evsys1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys2(&mut self, generator: &GClock) -> Option<Evsys2Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys3(&mut self, generator: &GClock) -> Option<Evsys3Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys4(&mut self, generator: &GClock) -> Option<Evsys4Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys5(&mut self, generator: &GClock) -> Option<Evsys5Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys6(&mut self, generator: &GClock) -> Option<Evsys6Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys7(&mut self, generator: &GClock) -> Option<Evsys7Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys8(&mut self, generator: &GClock) -> Option<Evsys8Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys9(&mut self, generator: &GClock) -> Option<Evsys9Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys10(&mut self, generator: &GClock) -> Option<Evsys10Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn evsys11(&mut self, generator: &GClock) -> Option<Evsys11Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn can0(&mut self, generator: &GClock) -> Option<Can0Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn can1(&mut self, generator: &GClock) -> Option<Can1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn pdec(&mut self, generator: &GClock) -> Option<PdecClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn ac(&mut self, generator: &GClock) -> Option<AcClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn ccl(&mut self, generator: &GClock) -> Option<CclClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn dac(&mut self, generator: &GClock) -> Option<DacClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn i2s0(&mut self, generator: &GClock) -> Option<I2S0Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn i2s1(&mut self, generator: &GClock) -> Option<I2S1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sdhc0(&mut self, generator: &GClock) -> Option<Sdhc0Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn sdhc1(&mut self, generator: &GClock) -> Option<Sdhc1Clock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

source

pub fn cm4_trace(&mut self, generator: &GClock) -> Option<Cm4TraceClock>

Configure the clock for peripheral(s) that match the name of this function to use the specific clock generator. The GClock parameter may be one of default clocks return from gclk0(), gclk1() or a clock configured by the host application using the configure_gclk_divider_and_source method. Returns a typed token that proves that the clock has been configured; the peripheral initialization code will typically require that this clock token be passed in to ensure that the clock has been initialized appropriately. Returns None is the specified generic clock has already been configured.

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> 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> Same for T

§

type Output = T

Should always be Self
source§

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

§

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>,

§

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.