pub struct USER0 { /* private fields */ }Expand description
user0
Implementations§
Source§impl USER0
impl USER0
Sourcepub const PTR: *const RegisterBlock = {0xf0001600 as *const generated::user0::RegisterBlock}
pub const PTR: *const RegisterBlock = {0xf0001600 as *const generated::user0::RegisterBlock}
Pointer to the register block
Sourcepub const fn ptr() -> *const RegisterBlock
pub const fn ptr() -> *const RegisterBlock
Return the pointer to the register block
Sourcepub unsafe fn steal() -> Self
pub unsafe fn steal() -> Self
Steal an instance of this peripheral
§Safety
Ensure that the new instance of the peripheral cannot be used in a way that may race with any existing instances, for example by only accessing read-only or write-only registers, or by consuming the original peripheral and using critical sections to coordinate access between multiple new instances.
Additionally, other software such as HALs may rely on only one peripheral instance existing to ensure memory safety; ensure no stolen instances are passed to such software.
Methods from Deref<Target = RegisterBlock>§
Sourcepub fn mode(&self) -> &MODE
pub fn mode(&self) -> &MODE
0x00 - Mode register. This :class:csr.Register contains an array of pin_count read/write fields. Each field is 2-bit wide and its possible values are defined by the :class:PinMode enumeration. If pin_count is 8, then the register has the following fields: .. bitfield:: :bits: 16 [ { “name”: “pin[0]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[1]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[2]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[3]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[4]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[5]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[6]”, “bits”: 2, “attr”: “RW” }, { “name”: “pin[7]”, “bits”: 2, “attr”: “RW” }, ]
Parameters ––––– pin_count : :class:int Number of GPIO pins.
Sourcepub fn input(&self) -> &INPUT
pub fn input(&self) -> &INPUT
0x01 - Input register. This :class:csr.Register contains an array of pin_count read-only fields. Each field is 1-bit wide and driven by the input of its associated pin in the :attr:Peripheral.pins array. Values sampled from pin inputs go through :attr:Peripheral.input_stages synchronization stages (on a rising edge of ClockSignal("sync")) before reaching the register. If pin_count is 8, then the register has the following fields: .. bitfield:: :bits: 8 [ { “name”: “pin[0]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[1]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[2]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[3]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[4]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[5]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[6]”, “bits”: 1, “attr”: “R” }, { “name”: “pin[7]”, “bits”: 1, “attr”: “R” }, ]
Parameters ––––– pin_count : :class:int Number of GPIO pins.
Sourcepub fn output(&self) -> &OUTPUT
pub fn output(&self) -> &OUTPUT
0x02 - Output register. This :class:csr.Register contains an array of pin_count read/write fields. Each field is 1-bit wide and drives the output of its associated pin in the :attr:Peripheral.pins array, depending on its associated :class:~Peripheral.Mode field. If pin_count is 8, then the register has the following fields: .. bitfield:: :bits: 8 [ { “name”: “pin[0]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[1]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[2]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[3]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[4]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[5]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[6]”, “bits”: 1, “attr”: “RW” }, { “name”: “pin[7]”, “bits”: 1, “attr”: “RW” }, ]
Parameters ––––– pin_count : :class:int Number of GPIO pins.
Sourcepub fn set_clr(&self) -> &SET_CLR
pub fn set_clr(&self) -> &SET_CLR
0x03 - Output set/clear register. This :class:csr.Register contains an array of pin_count write-only fields. Each field is 2-bit wide; writing it can modify its associated :class:~Peripheral.Output field as a side-effect. If pin_count is 8, then the register has the following fields: .. bitfield:: :bits: 16 [ { “name”: “pin[0]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[1]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[2]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[3]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[4]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[5]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[6]”, “bits”: 2, “attr”: “W” }, { “name”: “pin[7]”, “bits”: 2, “attr”: “W” }, ]
- Writing
0b01to a field sets its associated :class:~Peripheral.Outputfield. - Writing0b10to a field clears its associated :class:~Peripheral.Outputfield. - Writing0b00or0b11to a field has no side-effect. Parameters ––––– pin_count : :class:intNumber of GPIO pins.