Estoy trabajando en un PIC18f4520. Para hacer mi prueba, he conectado un led a la foto. Los siguientes elementos son los pasos que me gustaría hacer:
-
Guarde el valor del puerto establecido para el LED (que parpadea de acuerdo con la subrutina ISR que escribí, y puede verse en este caso como una señal de reloj). Por esto lo hice:
unsigned char portValue; // initialization TRISBbits.TRISB5 = 0; // LED on RB5 set as output portValue = PORTBbits.RB5; // operation in the main while loop
-
Izquierda desplaza los bits de portValue en uno, pero con la inserción del valor RB5 . Para ilustrar:
--> if RB5 = 1, I would have portValue = 0b0000 0001 --> at t+1, RB5 = 0 then portValue = 0b0000 0010 --> at t+2, RB5 = 1 then portValue = 0b0000 0101 --> and so on (RB5 taking 1 or 0 and no other value)
Con lo que he escrito hasta ahora solo puedo hacer un desplazamiento a la izquierda. Pero no puedo encontrar una manera de "agregar" el RB5 ...
Hace algo como
portValue = portValue<<(&PORTBbits.RB5);
podría funcionar? Las operaciones de cambio de bits son bastante nuevas para mí, por lo que mis preguntas pueden ser extrañas.
De todos modos, gracias de antemano!