2012-12-02 1 views
2

Je suis vraiment confus. Le manuel dit:Que fait le bit Timer1 RD16 sur les microcontrôleurs PIC18?

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 

Cependant, il ne semble pas y avoir de moyen de R/W avec une opération de 16 bits! D'après ce que la fiche technique dit plus tard, et de ce que j'ai lu en ligne, la valeur 16 bits doit encore être lu comme:

foo = TMR1L; 
bar = TMR1H; 

Et écrit:

TMR1H = bar; 
TMR1L = foo; 

À moins que je ne suis ne pas le voir, RD16 n'est pas montré dans le diagramme de Timer1, et semble n'avoir aucun effet sur quoi que ce soit!

Je sais que cela ne peut pas être vrai, cependant, alors voici, je demande: Que fait le bit Timer1 RD16 sur les microcontrôleurs PIC18?

Répondre

6

Il est tamponné en interne. Lorsqu'il est défini, une lecture sur le registre TMR1L entraîne la mise en tampon de la valeur de 16 bits réelle. TMR1L/H pointe sur le tampon et non sur le temporisateur.

+0

Alors que se passe-t-il lorsque * n'est * pas défini? Il ne semble pas que le bit RD16 affecte réellement quelque chose pour moi .. – Nate

+4

Lorsqu'il n'est pas défini, il pointe vers le registre de temporisation actuel, de sorte que vous courez le risque qu'au moment où vous lisez la valeur H, le temporisateur ait basculé . – James

Questions connexes