Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

03/03/2012 #1


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



Gracias Por SU ayuuuuda ^^
03/03/2012 #2

Avatar de electroconico

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!
04/03/2012 #3

Avatar de Basalto

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
04/03/2012 #4


electroconico dijo: Ver Mensaje
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
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.