Hola a todos,
Antes de nada espero que la pregunta no os parezca una perogrullada muy grande, pero la verdad es que hace tiempo que no toco los pics y ademas me he cambiado al CCS por lo que ando un poco flojo...
El tema es que cuando intento configurar un puerto como entrada set_tris_b(0xFF); no funciona y si lo cambio a set_tris_b(0x00); funciona bien como entrada y como salida, por lo que me deja un poco extrañado y sin saber por que sucede esto???
Os muestro un pequeño programita de ejemplo donde sucede lo que comento.
#include <16F877.h>
#fuses HS,NOWDT,NOPROTECT,NOLVP
#use delay(clock=1000000)
#use fast_io(b)
#use fast_io(c)
void main(void)
{
set_tris_b(0xFF); // Configuro el puerto B como entradas, si lo pongo así no funciona, si lo cambio a (0x00) funciona OK.
set_tris_c(0x00); // Configuro el puerto C como salidas
output_c(0xFF); // Pruebo a poner el puerto C a 1.
output_c(0x00); // Reseteo el puerto C.
while (1) { // Bucle de prueba
if (input(PIN_B0)==1) {
output_bit(pin_c0, 1);
}
}
}
Espero que alguien pueda aclararme el porque sucede esto.
Saludos a todos.