TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Albertroski en 05 de Febrero de 2015, 07:41:25
-
Hola a todos,
Alguien me podría decir cómo asignar el valor de una entrada del PIC18F2580 a una salida en CCS, ya que he visto que para poner salidas a nivel alto o bajo se utiliza el comando output_high() y output_low(), pero no se cómo asignar lo que recibo en una entrada a una salida.
Un saludo a todos!
-
O podes leer pines con
int valor_pin = input(pin);
o leer todo el puerto:
int valor_pin = PORTA; // o el port que sea.
Y para escribir como dijiste tenes output_high() y output_low() para un solo bit, tambien tenes output_bit (pin, valor) pero para todo un puerto:
output_x(value);
donde x es a,b,c,d,e,etc etc etc, suponete escribir en el portb todo lo del porta. Estarias copiando los 8 bits del PORTA al PORTB
output_b(PORTA);
si solo queres hace que por ejemplo la salida copie la entrada de un solo pin
Lo mas entendible:
if(input(pin_A0))
{
output_high(pin_B0);
}
else
{
output_low(pin_B0);
}
esta ultima deberia funcionar, seria la mas corta y lo que buscas:
output_bit (pin_B0, input(pin_A0));
-
Hola tal vez si utilizas, por ejemplo
int8 datos;
#int_rda //interrupcion rs232
void isr_rda (void)
{
datos = getc();
output_d(datos);
}
o por ejemplo
void enviar(unsigned int8 datos)
{
for(int8 x = 0; x = 10; x++)
{
output_bit(pin_d0,datos & 0x8000);
datos <<= 1;
}
}
:) saludos
-
Gracias por las respuestas! Hoy mismo espero probarlo y os comento.
Un saludo