TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado 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:
-
Pone al comienzo del programa:
Asi CCS no agrega codigo y no te lo cambia por salida al usar el output
-
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
-
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
-
Ha si cierto, va gracias!!!! :-)