Struct atsamd_hal::clock::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
sourceimpl GenericClockController
impl GenericClockController
sourcepub fn with_internal_32kosc(
gclk: GCLK,
mclk: &mut MCLK,
osc32kctrl: &mut OSC32KCTRL,
oscctrl: &mut OSCCTRL,
nvmctrl: &mut NVMCTRL
) -> Self
pub fn with_internal_32kosc(
gclk: GCLK,
mclk: &mut MCLK,
osc32kctrl: &mut OSC32KCTRL,
oscctrl: &mut OSCCTRL,
nvmctrl: &mut NVMCTRL
) -> Self
Reset the clock controller, configure the system to run at 120Mhz and reset various clock dividers.
sourcepub fn with_external_32kosc(
gclk: GCLK,
mclk: &mut MCLK,
osc32kctrl: &mut OSC32KCTRL,
oscctrl: &mut OSCCTRL,
nvmctrl: &mut NVMCTRL
) -> Self
pub fn with_external_32kosc(
gclk: GCLK,
mclk: &mut MCLK,
osc32kctrl: &mut OSC32KCTRL,
oscctrl: &mut OSCCTRL,
nvmctrl: &mut NVMCTRL
) -> Self
Reset the clock controller, configure the system to run at 120Mhz and reset various clock dividers.
sourcepub fn get_gclk(&mut self, gclk: ClockGenId) -> Option<GClock>
pub fn get_gclk(&mut self, gclk: ClockGenId) -> Option<GClock>
Returns the GClock
for the specified clock generator.
If that clock generator has not yet been configured,
returns None.
sourcepub fn configure_gclk_divider_and_source(
&mut self,
gclk: ClockGenId,
divider: u16,
src: ClockSource,
improve_duty_cycle: bool
) -> Option<GClock>
pub fn configure_gclk_divider_and_source(
&mut self,
gclk: ClockGenId,
divider: u16,
src: ClockSource,
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.
sourcepub fn configure_standby(&mut self, gclk: ClockGenId, enable: bool)
pub fn configure_standby(&mut self, gclk: ClockGenId, enable: bool)
Enables or disables the given GClk from operation in standby.
sourceimpl GenericClockController
impl GenericClockController
sourcepub fn tc0_tc1(&mut self, generator: &GClock) -> Option<Tc0Tc1Clock>
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.
sourcepub fn tcc0_tcc1(&mut self, generator: &GClock) -> Option<Tcc0Tcc1Clock>
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.
sourcepub fn tc2_tc3(&mut self, generator: &GClock) -> Option<Tc2Tc3Clock>
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.
sourcepub fn tcc2_tcc3(&mut self, generator: &GClock) -> Option<Tcc2Tcc3Clock>
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.
sourcepub fn sercom0_core(&mut self, generator: &GClock) -> Option<Sercom0CoreClock>
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.
sourcepub fn sercom1_core(&mut self, generator: &GClock) -> Option<Sercom1CoreClock>
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.
sourcepub fn sercom2_core(&mut self, generator: &GClock) -> Option<Sercom2CoreClock>
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.
sourcepub fn sercom3_core(&mut self, generator: &GClock) -> Option<Sercom3CoreClock>
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.
sourcepub fn sercom4_core(&mut self, generator: &GClock) -> Option<Sercom4CoreClock>
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.
sourcepub fn sercom5_core(&mut self, generator: &GClock) -> Option<Sercom5CoreClock>
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.
sourcepub fn usb(&mut self, generator: &GClock) -> Option<UsbClock>
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.
sourcepub fn adc0(&mut self, generator: &GClock) -> Option<Adc0Clock>
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.
sourcepub fn adc1(&mut self, generator: &GClock) -> Option<Adc1Clock>
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.
sourcepub fn eic(&mut self, generator: &GClock) -> Option<EicClock>
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.
sourcepub fn freq_m_msr(&mut self, generator: &GClock) -> Option<FreqmMsrClock>
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.
sourcepub fn freq_m_ref(&mut self, generator: &GClock) -> Option<FreqmRefClock>
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.
sourcepub fn evsys0(&mut self, generator: &GClock) -> Option<Evsys0Clock>
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.
sourcepub fn evsys1(&mut self, generator: &GClock) -> Option<Evsys1Clock>
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.
sourcepub fn evsys2(&mut self, generator: &GClock) -> Option<Evsys2Clock>
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.
sourcepub fn evsys3(&mut self, generator: &GClock) -> Option<Evsys3Clock>
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.
sourcepub fn evsys4(&mut self, generator: &GClock) -> Option<Evsys4Clock>
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.
sourcepub fn evsys5(&mut self, generator: &GClock) -> Option<Evsys5Clock>
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.
sourcepub fn evsys6(&mut self, generator: &GClock) -> Option<Evsys6Clock>
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.
sourcepub fn evsys7(&mut self, generator: &GClock) -> Option<Evsys7Clock>
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.
sourcepub fn evsys8(&mut self, generator: &GClock) -> Option<Evsys8Clock>
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.
sourcepub fn evsys9(&mut self, generator: &GClock) -> Option<Evsys9Clock>
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.
sourcepub fn evsys10(&mut self, generator: &GClock) -> Option<Evsys10Clock>
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.
sourcepub fn evsys11(&mut self, generator: &GClock) -> Option<Evsys11Clock>
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.
sourcepub fn pdec(&mut self, generator: &GClock) -> Option<PdecClock>
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.
sourcepub fn ac(&mut self, generator: &GClock) -> Option<AcClock>
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.
sourcepub fn ccl(&mut self, generator: &GClock) -> Option<CclClock>
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.
sourcepub fn dac(&mut self, generator: &GClock) -> Option<DacClock>
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.
sourcepub fn sdhc0(&mut self, generator: &GClock) -> Option<Sdhc0Clock>
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.
sourcepub fn cm4_trace(&mut self, generator: &GClock) -> Option<Cm4TraceClock>
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.