@@ -212,18 +212,18 @@ macro_rules! gpio {
212
212
self ,
213
213
cr: & mut $CR,
214
214
) -> $PXi<Alternate <PushPull >> {
215
- let offset = ( 4 * $i) % 32 ;
215
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
216
216
// Alternate function output push pull
217
- let cnf = 0b10 ;
217
+ const CNF : u32 = 0b10 ;
218
218
// Output mode, max speed 50 MHz
219
- let mode = 0b11 ;
220
- let bits = ( cnf << 2 ) | mode ;
219
+ const MODE : u32 = 0b11 ;
220
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
221
221
222
222
// input mode
223
223
cr
224
224
. cr( )
225
225
. modify( |r, w| unsafe {
226
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
226
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
227
227
} ) ;
228
228
229
229
$PXi { _mode: PhantomData }
@@ -235,18 +235,18 @@ macro_rules! gpio {
235
235
self ,
236
236
cr: & mut $CR,
237
237
) -> $PXi<Alternate <OpenDrain >> {
238
- let offset = ( 4 * $i) % 32 ;
238
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
239
239
// Alternate function output open drain
240
- let cnf = 0b11 ;
240
+ const CNF : u32 = 0b11 ;
241
241
// Output mode, max speed 50 MHz
242
- let mode = 0b11 ;
243
- let bits = ( cnf << 2 ) | mode ;
242
+ const MODE : u32 = 0b11 ;
243
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
244
244
245
245
// input mode
246
246
cr
247
247
. cr( )
248
248
. modify( |r, w| unsafe {
249
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
249
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
250
250
} ) ;
251
251
252
252
$PXi { _mode: PhantomData }
@@ -257,18 +257,18 @@ macro_rules! gpio {
257
257
self ,
258
258
cr: & mut $CR,
259
259
) -> $PXi<Input <Floating >> {
260
- let offset = ( 4 * $i) % 32 ;
260
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
261
261
// Floating input
262
- let cnf = 0b01 ;
262
+ const CNF : u32 = 0b01 ;
263
263
// Input mode
264
- let mode = 0b00 ;
265
- let bits = ( cnf << 2 ) | mode ;
264
+ const MODE : u32 = 0b00 ;
265
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
266
266
267
267
// input mode
268
268
cr
269
269
. cr( )
270
270
. modify( |r, w| unsafe {
271
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
271
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
272
272
} ) ;
273
273
274
274
$PXi { _mode: PhantomData }
@@ -279,12 +279,12 @@ macro_rules! gpio {
279
279
self ,
280
280
cr: & mut $CR,
281
281
) -> $PXi<Input <PullDown >> {
282
- let offset = ( 4 * $i) % 32 ;
282
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
283
283
// Pull up/down input
284
- let cnf = 0b10 ;
284
+ const CNF : u32 = 0b10 ;
285
285
// Input mode
286
- let mode = 0b00 ;
287
- let bits = ( cnf << 2 ) | mode ;
286
+ const MODE : u32 = 0b00 ;
287
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
288
288
289
289
//pull down:
290
290
// NOTE(unsafe) atomic write to a stateless register
@@ -294,7 +294,7 @@ macro_rules! gpio {
294
294
cr
295
295
. cr( )
296
296
. modify( |r, w| unsafe {
297
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
297
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
298
298
} ) ;
299
299
300
300
$PXi { _mode: PhantomData }
@@ -305,12 +305,12 @@ macro_rules! gpio {
305
305
self ,
306
306
cr: & mut $CR,
307
307
) -> $PXi<Input <PullUp >> {
308
- let offset = ( 4 * $i) % 32 ;
308
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
309
309
// Pull up/down input
310
- let cnf = 0b10 ;
310
+ const CNF : u32 = 0b10 ;
311
311
// Input mode
312
- let mode = 0b00 ;
313
- let bits = ( cnf << 2 ) | mode ;
312
+ const MODE : u32 = 0b00 ;
313
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
314
314
315
315
//pull up:
316
316
// NOTE(unsafe) atomic write to a stateless register
@@ -320,7 +320,7 @@ macro_rules! gpio {
320
320
cr
321
321
. cr( )
322
322
. modify( |r, w| unsafe {
323
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
323
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
324
324
} ) ;
325
325
326
326
$PXi { _mode: PhantomData }
@@ -342,12 +342,12 @@ macro_rules! gpio {
342
342
cr: & mut $CR,
343
343
initial_state: State ,
344
344
) -> $PXi<Output <OpenDrain >> {
345
- let offset = ( 4 * $i) % 32 ;
345
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
346
346
// General purpose output open-drain
347
- let cnf = 0b01 ;
347
+ const CNF : u32 = 0b01 ;
348
348
// Open-Drain Output mode, max speed 50 MHz
349
- let mode = 0b11 ;
350
- let bits = ( cnf << 2 ) | mode ;
349
+ const MODE : u32 = 0b11 ;
350
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
351
351
352
352
let mut res = $PXi { _mode: PhantomData } ;
353
353
@@ -359,7 +359,7 @@ macro_rules! gpio {
359
359
cr
360
360
. cr( )
361
361
. modify( |r, w| unsafe {
362
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
362
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
363
363
} ) ;
364
364
365
365
res
@@ -380,12 +380,12 @@ macro_rules! gpio {
380
380
cr: & mut $CR,
381
381
initial_state: State ,
382
382
) -> $PXi<Output <PushPull >> {
383
- let offset = ( 4 * $i) % 32 ;
383
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
384
384
// General purpose output push-pull
385
- let cnf = 0b00 ;
385
+ const CNF : u32 = 0b00 ;
386
386
// Output mode, max speed 50 MHz
387
- let mode = 0b11 ;
388
- let bits = ( cnf << 2 ) | mode ;
387
+ const MODE : u32 = 0b11 ;
388
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
389
389
390
390
let mut res = $PXi { _mode: PhantomData } ;
391
391
@@ -397,26 +397,26 @@ macro_rules! gpio {
397
397
cr
398
398
. cr( )
399
399
. modify( |r, w| unsafe {
400
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
400
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
401
401
} ) ;
402
402
403
403
res
404
404
}
405
405
406
406
/// Configures the pin to operate as an analog input pin
407
407
pub fn into_analog( self , cr: & mut $CR) -> $PXi<Analog > {
408
- let offset = ( 4 * $i) % 32 ;
408
+ const OFFSET : u32 = ( 4 * $i) % 32 ;
409
409
// Analog input
410
- let cnf = 0b00 ;
410
+ const CNF : u32 = 0b00 ;
411
411
// Input mode
412
- let mode = 0b00 ;
413
- let bits = ( cnf << 2 ) | mode ;
412
+ const MODE : u32 = 0b00 ;
413
+ const BITS : u32 = ( CNF << 2 ) | MODE ;
414
414
415
415
// analog mode
416
416
cr
417
417
. cr( )
418
418
. modify( |r, w| unsafe {
419
- w. bits( ( r. bits( ) & !( 0b1111 << offset ) ) | ( bits << offset ) )
419
+ w. bits( ( r. bits( ) & !( 0b1111 << OFFSET ) ) | ( BITS << OFFSET ) )
420
420
} ) ;
421
421
422
422
$PXi { _mode: PhantomData }
0 commit comments