Me respondo a mi mismo:
Cuando se quiere rotar el contenido de una variable en C18 se recomienda usar:
Rlcf(var, dest, access) rota la variable a la izquierda contando con el bit de acarreo
Rlncf(var, dest, access) rota la variable a la izquierda sin contar con el bit de acarreo
Rrcf(var, dest, access) rota la variable a la derecha contando con el bit de acarreo
Rrncf(var, dest, access)rota la variable a la derecha sin contar con el bit de acarreo
Ahi que tener en cuenta una cosa y es que la variable tiene que estar declarada a nivel global, es decir fuera de cualquier funcion y de la funcion main.
Un ejemplo:
var = 0b00000001;
main()
{
Rlncf(var,1,1);
}
Otra manera es con el operando << solo que este no es de rotacion, es como un empujon.
var = 0b10000001;
main()
{
var = var<<1;
}
cada vez que se ejecute el operador << sobre la variable hara los siguiente 0000 0010 primera vez 0000 0100 segunda vez 0000 1000 tercera vez. El bit mas alto desaparece y aparece un bit a cero en la parte mas baja.
He investigado un poco en los foros de microchip hablan mucho del tema pero no soy un experto aun en ello. De todas cualquier sugerencia para completar mi respuesta sera bien recibida.