16.3 LATx - Output Latch
The Data Latch (LATx registers) is useful for read-modify-write operations on the value that the I/O pins are driving.
A write operation to the LATx register has the same effect as a write to the corresponding PORTx register. A read of the LATx register reads of the values held in the I/O PORT latches, while a read of the PORTx register reads the actual I/O pin value.
Important: As a general rule,
output operations to a port should use the LAT register to avoid read-modify-write
issues. For example, a bit set or clear operation reads the port, modifies the bit, and
writes the result back to the port. When two bit operations are executed in succession,
output loading on the changed bit may delay the change at the output in which case the
bit will be misread in the second bit operation and written to an unexpected level. The
LAT registers are isolated from the port loading and therefore changes are not
delayed.