I'm really confused. The manual says:
RD16: 16-bit Read/Write Mode Enable bit
1= Enables register Read/Write of Timer1 in one 16-bit operation
0= Enables register Read/Write of Timer1 in two 8-bit operations
However, there doesn't actually seem to be any way to R/W with one 16-bit operation! From what the datasheet says later, and from what I've read online, the 16-bit value must still be read as:
foo = TMR1L;
bar = TMR1H;
And written as:
TMR1H = bar;
TMR1L = foo;
Unless I'm just not seeing it, RD16 is not shown in the Timer1 block diagram, and seems to have no effect on anything whatsoever!
I know that can't be true, however, so here I am, asking: What does the Timer1 RD16 bit do on PIC18 microcontrollers?
It's buffered internally. When set, then a read on the TMR1L register causes the actual 16 bit value to be buffered. TMR1L/H points to the buffer, not the timer.