Module atsamd_hal::sercom::pad
source · [−]Expand description
Type-level tools to configure SERCOM pads
This module helps configure Pin
s as SERCOM pads. It provides type-level
tools to convert Pin
s to the correct PinMode
and to enforce type-level
constraints at compile-time.
Overview
A SERCOM pad is defined by two types, its corresponding Sercom
instance
and its PadNum
, from Pad0
to Pad3
. However, a given SERCOM pad
can usually be mapped to several possible PinId
s.
There are two primary traits defined in this module:
- The
IsPad
trait is implemented onPin
types that are properly configured as SERCOM pads, withPinMode
AlternateC
orAlternateD
. It acts as both a type class for SERCOM pads and as a type-level function to recover the correspondingSercom
andPadNum
types from thePin
. - The
GetPad
trait maps eachPinId
to its corresponding, pad-related types. ThePadMode
alias usesGetPad
to recover the correspondingPinMode
for a given SERCOM pad, while thePad
alias recovers the configuredPin
type.
Enums
Traits
Type-level function mapping
OptionalPinId
s to their corresponding
OptionalPad
sType-level equivalent of
Option<Pad>
Type-level equivalent of
Option<PadNum>
Type-level enum representing a SERCOM pad number
Type-level equivalent of
Some(Pad)