1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221
#[doc = r" Register block"] #[repr(C)] pub struct RegisterBlock { #[doc = "0x00 - Control register"] pub con: CON, #[doc = "0x04 - Encoder status register"] pub stat: STAT, #[doc = "0x08 - Configuration register"] pub conf: CONF, #[doc = "0x0c - Position register"] pub pos: POS, #[doc = "0x10 - Maximum position register"] pub maxpos: MAXPOS, #[doc = "0x14 - position compare register 0"] pub cmpos0: CMPOS0, #[doc = "0x18 - position compare register 1"] pub cmpos1: CMPOS1, #[doc = "0x1c - position compare register 2"] pub cmpos2: CMPOS2, #[doc = "0x20 - Index count register"] pub inxcnt: INXCNT, #[doc = "0x24 - Index compare register 0"] pub inxcmp0: INXCMP0, #[doc = "0x28 - Velocity timer reload register"] pub load: LOAD, #[doc = "0x2c - Velocity timer register"] pub time: TIME, #[doc = "0x30 - Velocity counter register"] pub vel: VEL, #[doc = "0x34 - Velocity capture register"] pub cap: CAP, #[doc = "0x38 - Velocity compare register"] pub velcomp: VELCOMP, #[doc = "0x3c - Digital filter register on input phase A (QEI_A)"] pub filterpha: FILTERPHA, #[doc = "0x40 - Digital filter register on input phase B (QEI_B)"] pub filterphb: FILTERPHB, #[doc = "0x44 - Digital filter register on input index (QEI_IDX)"] pub filterinx: FILTERINX, #[doc = "0x48 - Index acceptance window register"] pub window: WINDOW, #[doc = "0x4c - Index compare register 1"] pub inxcmp1: INXCMP1, #[doc = "0x50 - Index compare register 2"] pub inxcmp2: INXCMP2, _reserved0: [u8; 3972usize], #[doc = "0xfd8 - Interrupt enable clear register"] pub iec: IEC, #[doc = "0xfdc - Interrupt enable set register"] pub ies: IES, #[doc = "0xfe0 - Interrupt status register"] pub intstat: INTSTAT, #[doc = "0xfe4 - Interrupt enable register"] pub ie: IE, #[doc = "0xfe8 - Interrupt status clear register"] pub clr: CLR, #[doc = "0xfec - Interrupt status set register"] pub set: SET, } #[doc = "Control register"] pub struct CON { register: ::vcell::VolatileCell<u32>, } #[doc = "Control register"] pub mod con; #[doc = "Configuration register"] pub struct CONF { register: ::vcell::VolatileCell<u32>, } #[doc = "Configuration register"] pub mod conf; #[doc = "Encoder status register"] pub struct STAT { register: ::vcell::VolatileCell<u32>, } #[doc = "Encoder status register"] pub mod stat; #[doc = "Position register"] pub struct POS { register: ::vcell::VolatileCell<u32>, } #[doc = "Position register"] pub mod pos; #[doc = "Maximum position register"] pub struct MAXPOS { register: ::vcell::VolatileCell<u32>, } #[doc = "Maximum position register"] pub mod maxpos; #[doc = "position compare register 0"] pub struct CMPOS0 { register: ::vcell::VolatileCell<u32>, } #[doc = "position compare register 0"] pub mod cmpos0; #[doc = "position compare register 1"] pub struct CMPOS1 { register: ::vcell::VolatileCell<u32>, } #[doc = "position compare register 1"] pub mod cmpos1; #[doc = "position compare register 2"] pub struct CMPOS2 { register: ::vcell::VolatileCell<u32>, } #[doc = "position compare register 2"] pub mod cmpos2; #[doc = "Index count register"] pub struct INXCNT { register: ::vcell::VolatileCell<u32>, } #[doc = "Index count register"] pub mod inxcnt; #[doc = "Index compare register 0"] pub struct INXCMP0 { register: ::vcell::VolatileCell<u32>, } #[doc = "Index compare register 0"] pub mod inxcmp0; #[doc = "Velocity timer reload register"] pub struct LOAD { register: ::vcell::VolatileCell<u32>, } #[doc = "Velocity timer reload register"] pub mod load; #[doc = "Velocity timer register"] pub struct TIME { register: ::vcell::VolatileCell<u32>, } #[doc = "Velocity timer register"] pub mod time; #[doc = "Velocity counter register"] pub struct VEL { register: ::vcell::VolatileCell<u32>, } #[doc = "Velocity counter register"] pub mod vel; #[doc = "Velocity capture register"] pub struct CAP { register: ::vcell::VolatileCell<u32>, } #[doc = "Velocity capture register"] pub mod cap; #[doc = "Velocity compare register"] pub struct VELCOMP { register: ::vcell::VolatileCell<u32>, } #[doc = "Velocity compare register"] pub mod velcomp; #[doc = "Digital filter register on input phase A (QEI_A)"] pub struct FILTERPHA { register: ::vcell::VolatileCell<u32>, } #[doc = "Digital filter register on input phase A (QEI_A)"] pub mod filterpha; #[doc = "Digital filter register on input phase B (QEI_B)"] pub struct FILTERPHB { register: ::vcell::VolatileCell<u32>, } #[doc = "Digital filter register on input phase B (QEI_B)"] pub mod filterphb; #[doc = "Digital filter register on input index (QEI_IDX)"] pub struct FILTERINX { register: ::vcell::VolatileCell<u32>, } #[doc = "Digital filter register on input index (QEI_IDX)"] pub mod filterinx; #[doc = "Index acceptance window register"] pub struct WINDOW { register: ::vcell::VolatileCell<u32>, } #[doc = "Index acceptance window register"] pub mod window; #[doc = "Index compare register 1"] pub struct INXCMP1 { register: ::vcell::VolatileCell<u32>, } #[doc = "Index compare register 1"] pub mod inxcmp1; #[doc = "Index compare register 2"] pub struct INXCMP2 { register: ::vcell::VolatileCell<u32>, } #[doc = "Index compare register 2"] pub mod inxcmp2; #[doc = "Interrupt enable clear register"] pub struct IEC { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt enable clear register"] pub mod iec; #[doc = "Interrupt enable set register"] pub struct IES { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt enable set register"] pub mod ies; #[doc = "Interrupt status register"] pub struct INTSTAT { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt status register"] pub mod intstat; #[doc = "Interrupt enable register"] pub struct IE { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt enable register"] pub mod ie; #[doc = "Interrupt status clear register"] pub struct CLR { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt status clear register"] pub mod clr; #[doc = "Interrupt status set register"] pub struct SET { register: ::vcell::VolatileCell<u32>, } #[doc = "Interrupt status set register"] pub mod set;