Pergunta

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?

Foi útil?

Solução

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top