Autor Tema: Asignar la lectura de un puerto entero a una variable y comprobar sus bits  (Leído 377 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Antes de nada, aclarar que este es mi segundo proyecto en C, debido a que me he propuesto el ir aprendiendo poco a poco a programar en este lenguaje.

El problema que tengo es que no se si lo estoy realizando bien, seguro que hay algo ,al en el código.
La cuestión es el leer el estado de un puerto completo, asignarle una variable y después comprobar el estado de alguno de los bits de esa variable. Dependiendo de ello, pues encender un led o apagarle.

Código: [Seleccionar]
void main()
{
   port_b_pullups (0xFF);  //Utiliza las resistencias PULL UP internas del puerto B
   set_tris_b(0b11111111); //Pongo el puerto B como entrada
   set_tris_d(0b00000000); //Pongo el PuertoD como Salida
   PORTD=(0b00000000);     // Apago el puerto D
   
   while(TRUE)
   {
     int entradas=input(PORTB);
     delay_ms(200);
     {
       if (bit_test(entradas,0)==1)
       {
       output_high(PIN_D0);
       }
       else
       {
       output_low(PIN_D0);
       delay_ms(400);
       }
     
     }
   }
}

A la hora de probarlo o bien la salida se me queda siempre a 0 o bien siempre a =1 dependiendo de la comparación del IF.
Adjunto el código para ver si me echan una mano. Estoy utilizando el puerto B como entradas con las resistencias internas a pullup por lo que las entradas siempre estarán =1 y quiero detectar cuando pasen a 0.
Gracias de antemano
F.
« Última modificación: 10 de Julio de 2022, 07:23:36 por Fer_TACA »
Todos los días se aprende algo nuevo.

Desconectado Fer_TACA

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 4069
Re:Asignar la lectura de un puerto entero a una variable y comprobar sus bits
« Respuesta #1 en: 10 de Julio de 2022, 07:37:12 »
Me respondo a mi mismo.
tenia mal escrita la linea de lectura del puerto B.
La coloque como:  int entradas=input_B();

y ya me comprueba el estado del bit 0.

¡¡¡ Cosas de novato!!!!

Ahora a seguir comprobando el resto de los bits.

F.
Todos los días se aprende algo nuevo.


 

anything