TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: nevermore en 28 de Agosto de 2009, 12:03:23
-
Hola, pues estoy realizando un programa para practicar el "switch case" y "juntar bits para hacer un numero decimal" , me esta compilando pero a la hora de probarlo en el protoboard no esta funcionando asi que solicito su ayuda para saber en que me estoy equivocando.
En este programa en el pin A0 y A1 de un pic 16f877a estoy conectando un deep switch como entrada, y a la salida conecto unos leds
Entonces al ejecutar este programa espero tener una salida como la siguiente:
Cuando RA1 y RA0 estan en baja, RB1 y RB0 estan en baja.
Cuando RA1 esta en baja y RA0 esta en alta, RB1 esta en baja y RB0 esta en alta.
Cuando RA1 esta en alta y RA0 esta en baja, RB1 esta en alta y RB0 esta en baja.
Cuando RA1 y RA0 estan en alta, RB1 y RB0 estan en alta.
#include <pic.h>
short int entrada;
void Inicializar(void);
void main(void)
{
Inicializar();
while(1)
{
entrada=((RA1<<1)+RA0); // Esta es la instruccion para juntar los bits
switch(entrada)
{
default:
RB1=0;
RB0=0;
break;
case 1:
RB1=0;
RB0=1;
break;
case 2:
RB1=1;
RB0=0;
break;
case 3:
RB1=1;
RB0=1;
break;
}
}
}
void Inicializar()
{
ADCON1=6;
TRISA0 = 1;
TRISA1 = 1;
TRISB0 = 0;
TRISB1 = 0;
entrada=0;
}
Saludos y gracias de antemano.
-
default que sea la última opción, no la primera. Porque después no veo nada mal.
Saludos!
-
Hola, muchisimas gracias...
De hecho acabo de checar y el problema que tenia era a la hora de conectar el deep switch... Estaba quemado y siempre me mandaba los 5V.
Entonces si se pude poner el default al principio.
Muchas gracias y saludos.