aripod:
Es que proteus me ha estado dando varios dolores de cabeza.
. Aunque reconozco que fue por mi propia culpa. Y quería saber como había sido el resultado final.
Me pasó que quería ver el cambio de estado de los registros portA, portB, etc. por el watch windows. Y si no consultaba su estado mediante un IF en el programa principal proteus no mostraba ningún cambio en el watchwindows.
Para hacer las pruebas cambiaba de estado de un pin en RB4 en plena simulación con un botón conectado tanto a gnd como a vcc con su respectiva resistencia y si bien se reflejaba el cambio de estado del pin con el cambio de color en el dibujo del pin del pic, en el watch windows no cambiaba de estado, siempre quedaba en 0.-
Aclaro que para hacer esa prueba utilicé un programa que constaba únicamente de un while(1);
void main(void)
{
ADCON1=0x0F;//Todos entrada/salida digitales.
TRISB = 0b11111111; // PORTB como entradas
TRISD = 0b00000000; // PORTD como salidas
LATD = 0b00000000; // TODOS LOS PINES A 0
while (1);
}
luego agregué el if que transcribo más abajo y si me mostró correctamente los cambios de estado del pin de entrada RB4.
if(PORTBbits.RB4==1) // testeamos RB4.
{
LATDbits.LATD0=1; // Si esta en 1 ENCENDEMOS led en RD0.
}
else
{
LATDbits.LATD0=0; // Si esta en 0 APAGAMOS Led en RD0.
}
Saludos y gracias por responder.
Jukinch