GPIO GPIO output

Each GPIO pin has an output bit in the GPIO block. These output bits are the targets of write operations “to the pins”. Two conditions must be met in order for a pin’s output bit to be driven onto the pin:

  1. The pin must be selected for GPIO operation in the switch matrix.
  2. The pin must be selected for output by a 1 in its port’s DIR register.

If either or both of these conditions is (are) not met, writing to the pin has no effect.

There are multiple ways to change GPIO output bits:

  • Writing to a Byte Pin register loads the output bit from the least significant bit.
  • Writing to a Word Pin register loads the output bit with the OR of all of the bits written. (This feature follows the definition of “truth” of a multi-bit value in programming languages.)
  • Writing to a port’s PORT register loads the output bits of all the pins written to.
  • Writing to a port’s MPORT register loads the output bits of pins identified by zeros in corresponding positions of the port’s MASK register.
  • Writing ones to a port’s SET register sets output bits.
  • Writing ones to a port’s CLR register clears output bits.
  • Writing ones to a port’s NOT register toggles/complements/inverts output bits.

The state of a port’s output bits can be read from its SET register. Reading any of the registers described in GPIO Reading pin state returns the state of pins, regardless of their direction or alternate functions.


-->