TODOPIC

Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: Somag! en 12 de Diciembre de 2016, 23:40:14

Título: Control de puerto para teclado matricial
Publicado por: Somag! en 12 de Diciembre de 2016, 23:40:14
Buenas tardes quisiera saber si alguien me puede ayudar, utilizo PIC C COMPILER...
se supone que cuando pongo
set_tris_b(0x0F);
el nibble alto esta como salida y el nibble bajo esta como entrada.
La cuestión es que cuando quiero poner un número 14 en la salida, todo el puerto se me pone como salida y yo solo quiero que ese 14 se ponga en el nibble alto sin tener que poner
   output_bit(pin_b4,0);
   output_bit(pin_b5,1);
   output_bit(pin_b6,1);
   output_bit(pin_b7,1);

Le agradecería mucho a quien me pueda ayudar :oops:
Título: Re:Control de puerto para teclado matricial
Publicado por: KILLERJC en 12 de Diciembre de 2016, 23:43:06
Pone al comienzo del programa:

Código: C
  1. #USE FAST_IO(B)

Asi CCS no agrega codigo y no te lo cambia por salida al usar el output
Título: Re:Control de puerto para teclado matricial
Publicado por: Somag! en 12 de Diciembre de 2016, 23:57:25
ho gracias si funciono :-/ :-/
Ya no se cambia todo el puerto como salida,pero el 14 sigue sin aparecer :c
tengo que poner el 224, osea
0x0E=14
0XE0=224
:shock:
pero por ahí va mi problema
Título: Re:Control de puerto para teclado matricial
Publicado por: KILLERJC en 13 de Diciembre de 2016, 00:13:25
Y eso es por que los bits del puerto que estas intentando cambiar son los superiores.


El puerto B es un registro de 8 bits ( o pensalo como una variable de 8 bits en que cada bit representa un pin )

B7 B6 B5 B4 B3 B2 B1 B0

Desde B0 a B3 los tenes como entradsa, asi que el valor que deberias cargar son los 4 bits de mas peso, es decir de B4 a B7, si lo ponemos en binario al 14 seria:

1  1  1  0  x   x   x   x   ( Las x son las entradas y lo que no nos importa, pero luego le ponemos un cero )

Ese numero pasado a hexadecimal es 0xE0, o en decimal 224.

Espero que se entienda el porque tenes que poner 0xE0 y no 0x0E

Ahora si tu salidas fueran B0 a B3, deberias usar 0x0E

Título: Re:Control de puerto para teclado matricial
Publicado por: Somag! en 13 de Diciembre de 2016, 00:31:48
Ha si cierto, va gracias!!!! :-)