TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: Albertroski en 05 de Febrero de 2015, 07:41:25

Título: Asignar valores de entrada a una salida en CCS
Publicado 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!
Título: Re: Asignar valores de entrada a una salida en CCS
Publicado por: KILLERJC en 05 de Febrero de 2015, 09:58:11
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

Código: [Seleccionar]
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));

Título: Re: Asignar valores de entrada a una salida en CCS
Publicado por: Byakuya en 05 de Febrero de 2015, 10:50:43
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
Título: Re: Asignar valores de entrada a una salida en CCS
Publicado por: Albertroski en 06 de Febrero de 2015, 06:50:55
Gracias por las respuestas! Hoy mismo espero probarlo y os comento.

Un saludo