pub struct Pclk<P, I>where
P: PclkId,
I: PclkSourceId,{ /* private fields */ }
Expand description
Peripheral channel clock for a given peripheral
Peripheral channel clocks connect generic clock generators (Gclk
s) to
various peripherals. Pclk
s usually act as leaves in the clock tree, except
when they feed the DFLL
and DPLL
peripherals.
The type parameter P
is a PclkId
that determines which of the 48
peripherals this Pclk
feeds. The type parameter I
represents the Id
type for the EnabledGclk
acting as the Pclk
’s Source
. It must be
one of the valid PclkSourceId
s, which is simply a trait alias for
GclkId
. See the clock
module documentation for more detail on
Id
types.
Pclk
s cannot act as general purpose clock Source
s; rather, they map
1:1 with corresponding peripherals. Thus, enabled Pclk
s do not need a
compile-time counter of consumer clocks, so they are not wrapped with
Enabled
. Enabled Pclk
s are created directly from PclkToken
s with
Pclk::enable
.
See the module-level documentation for an example.
Implementations
sourceimpl<P, I> Pclk<P, I>where
P: PclkId,
I: PclkSourceId,
impl<P, I> Pclk<P, I>where
P: PclkId,
I: PclkSourceId,
sourcepub fn enable<S>(token: PclkToken<P>, gclk: S) -> (Self, S::Inc)where
S: Source<Id = I> + Increment,
pub fn enable<S>(token: PclkToken<P>, gclk: S) -> (Self, S::Inc)where
S: Source<Id = I> + Increment,
Trait Implementations
sourceimpl<I: PclkSourceId> From<Pclk<Ac, I>> for AcClock
impl<I: PclkSourceId> From<Pclk<Ac, I>> for AcClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Adc0, I>> for Adc0Clock
impl<I: PclkSourceId> From<Pclk<Adc0, I>> for Adc0Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Adc1, I>> for Adc1Clock
impl<I: PclkSourceId> From<Pclk<Adc1, I>> for Adc1Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<CM4Trace, I>> for Cm4TraceClock
impl<I: PclkSourceId> From<Pclk<CM4Trace, I>> for Cm4TraceClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Ccl, I>> for CclClock
impl<I: PclkSourceId> From<Pclk<Ccl, I>> for CclClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Dac, I>> for DacClock
impl<I: PclkSourceId> From<Pclk<Dac, I>> for DacClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Eic, I>> for EicClock
impl<I: PclkSourceId> From<Pclk<Eic, I>> for EicClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys0, I>> for Evsys0Clock
impl<I: PclkSourceId> From<Pclk<EvSys0, I>> for Evsys0Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys1, I>> for Evsys1Clock
impl<I: PclkSourceId> From<Pclk<EvSys1, I>> for Evsys1Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys10, I>> for Evsys10Clock
impl<I: PclkSourceId> From<Pclk<EvSys10, I>> for Evsys10Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys11, I>> for Evsys11Clock
impl<I: PclkSourceId> From<Pclk<EvSys11, I>> for Evsys11Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys2, I>> for Evsys2Clock
impl<I: PclkSourceId> From<Pclk<EvSys2, I>> for Evsys2Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys3, I>> for Evsys3Clock
impl<I: PclkSourceId> From<Pclk<EvSys3, I>> for Evsys3Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys4, I>> for Evsys4Clock
impl<I: PclkSourceId> From<Pclk<EvSys4, I>> for Evsys4Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys5, I>> for Evsys5Clock
impl<I: PclkSourceId> From<Pclk<EvSys5, I>> for Evsys5Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys6, I>> for Evsys6Clock
impl<I: PclkSourceId> From<Pclk<EvSys6, I>> for Evsys6Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys7, I>> for Evsys7Clock
impl<I: PclkSourceId> From<Pclk<EvSys7, I>> for Evsys7Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys8, I>> for Evsys8Clock
impl<I: PclkSourceId> From<Pclk<EvSys8, I>> for Evsys8Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<EvSys9, I>> for Evsys9Clock
impl<I: PclkSourceId> From<Pclk<EvSys9, I>> for Evsys9Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<FreqMMeasure, I>> for FreqmMsrClock
impl<I: PclkSourceId> From<Pclk<FreqMMeasure, I>> for FreqmMsrClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourcefn from(pclk: Pclk<FreqMMeasure, I>) -> Self
fn from(pclk: Pclk<FreqMMeasure, I>) -> Self
sourceimpl<I: PclkSourceId> From<Pclk<FreqMReference, I>> for FreqmRefClock
impl<I: PclkSourceId> From<Pclk<FreqMReference, I>> for FreqmRefClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourcefn from(pclk: Pclk<FreqMReference, I>) -> Self
fn from(pclk: Pclk<FreqMReference, I>) -> Self
sourceimpl<I: PclkSourceId> From<Pclk<PDec, I>> for PdecClock
impl<I: PclkSourceId> From<Pclk<PDec, I>> for PdecClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM0, I>> for Sercom0CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM0, I>> for Sercom0CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM1, I>> for Sercom1CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM1, I>> for Sercom1CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM2, I>> for Sercom2CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM2, I>> for Sercom2CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM3, I>> for Sercom3CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM3, I>> for Sercom3CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM4, I>> for Sercom4CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM4, I>> for Sercom4CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<SERCOM5, I>> for Sercom5CoreClock
impl<I: PclkSourceId> From<Pclk<SERCOM5, I>> for Sercom5CoreClock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Sdhc0, I>> for Sdhc0Clock
impl<I: PclkSourceId> From<Pclk<Sdhc0, I>> for Sdhc0Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Tc0Tc1, I>> for Tc0Tc1Clock
impl<I: PclkSourceId> From<Pclk<Tc0Tc1, I>> for Tc0Tc1Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Tc2Tc3, I>> for Tc2Tc3Clock
impl<I: PclkSourceId> From<Pclk<Tc2Tc3, I>> for Tc2Tc3Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Tcc0Tcc1, I>> for Tcc0Tcc1Clock
impl<I: PclkSourceId> From<Pclk<Tcc0Tcc1, I>> for Tcc0Tcc1Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API
sourceimpl<I: PclkSourceId> From<Pclk<Tcc2Tcc3, I>> for Tcc2Tcc3Clock
impl<I: PclkSourceId> From<Pclk<Tcc2Tcc3, I>> for Tcc2Tcc3Clock
V2 to V1 compatibility layer that allows to convert V2 Pclk
constructs
into corresponding V1 *Clock
types. Thus, user can manage V1 clocking
compatible peripherals while using V2 clocking API