The programming example shown in the following table is used to
obtain the following configuration:
- 4-bit output port on I/O lines 0 to 3 (should be written in a single write operation), open-drain, with pullup resistor
- Four output signals on I/O lines 4 to 7 (to drive LEDs for example), driven high and low, no pullup resistor, no pulldown resistor
- Four input signals on I/O lines 8 to 11 (to read push-button states for example), with pullup resistors, glitch filters and input change interrupts
- Four input signals on I/O line 12 to 15 to read an external device status (polled, thus no input change interrupt), no pullup resistor, no glitch filter
- I/O lines 16 to 19 assigned to peripheral A functions with pullup resistor
- I/O lines 20 to 23 assigned to peripheral B functions with pulldown resistor
- I/O lines 24 to 27 assigned to peripheral C with input change interrupt, no pullup resistor and no pulldown resistor
- I/O lines 28 to 31 assigned to peripheral D, no pullup resistor and no pulldown resistor
Table 1. Programming Example
Register |
Value to be
Written |
PIO_PER |
0x0000_FFFF |
PIO_PDR |
0xFFFF_0000 |
PIO_OER |
0x0000_00FF |
PIO_ODR |
0xFFFF_FF00 |
PIO_IFER |
0x0000_0F00 |
PIO_IFDR |
0xFFFF_F0FF |
PIO_SODR |
0x0000_0000 |
PIO_CODR |
0x0FFF_FFFF |
PIO_IER |
0x0F00_0F00 |
PIO_IDR |
0xF0FF_F0FF |
PIO_MDER |
0x0000_000F |
PIO_MDDR |
0xFFFF_FFF0 |
PIO_PUDR |
0xFFF0_00F0 |
PIO_PUER |
0x000F_FF0F |
PIO_PPDDR |
0xFF0F_FFFF |
PIO_PPDER |
0x00F0_0000 |
PIO_ABCDSR1 |
0xF0F0_0000 |
PIO_ABCDSR2 |
0xFF00_0000 |
PIO_OWER |
0x0000_000F |
PIO_OWDR |
0x0FFF_FFF0 |