Output of TMR0 register in pic16f877A

cpic

I wrote a simple frequency counter program in which TMR0 is 500ms timer and TMR1 as counter.
Everything is working fine but what i din't understand is that TMR1 register output is hexadecimal or is decimal. Since input to TMR1 reg is in hexadecimal why my output is in decimal. Input frequency is supplied from 5khz square wave and TMR0 is prescaled to 256.TMR1 no prescaler.
I set the input to TMR1 register as

    TMR1L=0x00;
    TMR1H=0x00;

but after 500ms timer my TMR1 register value is

    TMR1L=243;
    TMR1H=8;

Best Answer

The timer register contains a bit pattern - how you set it or display it is up to you.

Whether you say TMR1L = 0x55 or TMR1L = 85, or TMR1L = 0b01010101, the register will contain the same bit pattern.

You can display the content of the register as binary, hex, decimal, or as an ASCII character, regardless of how you set the register contents.

If I set the value of TMR1L using any of the statements above,

printf("TMR1L= %2d, %2x, %c\n", TMR1L, TMR1L, TMR1L);

will print:

TMR1L= 85, 0x55, U

showing the decimal, hex and ASCII character represented by the bit pattern in the register.