Bien, gracias por responder. Yo habia pensado eso, pero pense que quisas habia ya alguna forma mas directa o sencilla de realizar dicha operacion, tal ves con algun tipo de funcion preestablecida.
Bueno teniendo en cuenta lo que me han dicho hice lo siguien:
Primero declaro las posiciones de los registros
#byte T1CON = 0x10
#byte TMR1L = 0x0E
#byte TMR1H = 0x0F
Luego indico como va a trabajar el timer1 y declaro las variables para armar el numero de 16 bits
T1CON = t1_internal;
int16 Alto;
int16 Bajo;
int i;
Por ultimo realizo un ciclo for infinito y dentro de el hago otro ciclo for para rotar 8 veces el registro TMR1H para luego sumarlo al TMR1L y mostrarlo en un LCD.
for(;; )
{
Alto=TMR1H;
for (i=0;i<8;i++)
{
rotate_left(&Alto,1);
}
printf(lcd_putc, "\fTIMER %Lu",Alto+Bajo);
delay_ms(100);
}
Pues no he podido lograr lo que yo queria, aun me sigue mostrando en pantalla un numero entre 0 y 255, cuando tendria que ser entre 0 y 65535. Se que lo que me va a mostrar en el LCD no son numeros consecutivos porque el timer1 corre mucho mas rapido de lo que yo lo estoy mostrando, pero en algun momento tendria que poder ver un numero mayor que 255, y no lo he podido visualizar, espero sugerencias o si ven algun error en el codigo, gracias.