1 Byte de Salida al presionar boton [Ayuda]

Hola compañeros de foros de electronica, hoy empeze a ver lo que es programacion en C para pics, yo tengo aqui un 16F877A.

La idea es que cuando el pic resiva el 1 logico en alguno de sus puertos digas puerto A0
envie al Puerto B0 un byte digamos 100011, una ves que se envie el 100011 espere hasta resivir otro 1 logico. es decir solo manda un 100011 por cada 1 logico que recive.

yo habia pensado en el siguiente Codigo.

Código:
#fuses XT,NOPROTECT,NOWDT,NOLVP
#use delay(clock=8000000)
#byte puerto_A=0x05
void main()
{
   while(TRUE)
   {
      if(bit_test(puerto_A,0))
      {
        y aqui poner que envie 100011 por el pueto B0 pero nose como hacerlo jeje
      }
   }
}


Como dije al pricipio hoy comnse con esto del C en pics por que odio Ensamblador jeje:D:D:D



Gracias Por SU ayuuuuda ^^
 
Como recomendación siempre indica que compilador estas usando ya que cambia entre uno y otro.

Por la estructura me parece que usas el pic c de CCS C.

Bueno

Código:
if(input(pin_A0)==0){  // Si el pin A0 esta a cero ejecuta código

output_b(0b100011);     //escribe en el puerto B
delay_ms(1000);          //retardo de 1 segundo
output_b(0);                 // escribe en el puerto B

}

Revisa la ayuda del CCS vienen bien explicadas las funciones y traen ejemplos.

Saludos!
 
Hola, en segundo lugar tienes que configurar el registro ADCON1 para configurar el puerto A como Digital. En tercer lugar configura el TRISA como entrada y el TRISB como salida. Un saludo
 
Como recomendación siempre indica que compilador estas usando ya que cambia entre uno y otro.

Por la estructura me parece que usas el pic c de CCS C.

Bueno

Código:
if(input(pin_A0)==0){  // Si el pin A0 esta a cero ejecuta código

output_b(0b100011);     //escribe en el puerto B
delay_ms(1000);          //retardo de 1 segundo
output_b(0);                 // escribe en el puerto B

}

Revisa la ayuda del CCS vienen bien explicadas las funciones y traen ejemplos.

Saludos!



ok gracias, y por ejemplo si nesesito enbiar 3 bites digamos

100011 despues 100010 y luego 100111

por un poerto usb o algo puedo enviar uno tras otro si poner el dalay, esque sto tiene que mandar creo que 32 byte por segundo jeje asi que el delay de 1 segundo seria un problema
 
Atrás
Arriba