Autor Tema: mandar palabra completa de pc a pic  (Leído 1621 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado jasmsa20

  • PIC10
  • *
  • Mensajes: 12
mandar palabra completa de pc a pic
« en: 04 de Junio de 2007, 23:41:27 »
Estoy haciendo un programa en ccs en el cual necesito comunicar un pc con un 16f873.
El pc manda una palabra completa y ante esta el pic hace una u otra cosa.
El caso es que sólo consigo con getc() que en el diplay que tiene me salga uno a uno los carácteres, la pregunta es:
¿que funcion tengo que utilizar para esto y como?. un saludo al foro y gracias de ante :lol:mano

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: mandar palabra completa de pc a pic
« Respuesta #1 en: 05 de Junio de 2007, 02:17:17 »
No explicas cómo envías y recibes la palabra, ni con qué protocolo ni con qué tipo de conexión.
Supongo que lo harás vía serie.
Si es así, el PIC sólo puede recoger las letras una a una y será trabajo de tu programa componerlas en un buffer hasta tener la palabra completa.
Te recomiento que eches un vistazo a la rutina Procesador de comandos vía RS232 (con buffer de recepción) del amigo RedPic.

Desconectado jasmsa20

  • PIC10
  • *
  • Mensajes: 12
Re: mandar palabra completa de pc a pic
« Respuesta #2 en: 06 de Junio de 2007, 13:15:51 »
Como bien dices la comunicación la voy a hacer por rs232.
He estado mirando en el manual de ccs y parece ser que con la función FGETS()  o GETS "no se cual es la diferencia, supongo que vendrá hererado del ansi C" se puede hacer.
La sintaxsis sería fgets (string, stream)
pero no tengo claro como funciona ya que hice un prueba y no me funcionó del todo bien.
Bueno si alguien ha trabajado o sabe como usarla pues eso que me heche una mano, de todas formas seguiré trabajando en ello.

Desconectado jodorowsky

  • PIC12
  • **
  • Mensajes: 52
Re: mandar palabra completa de pc a pic
« Respuesta #3 en: 12 de Junio de 2007, 03:19:08 »
Hola, como ya dijeron por ahi, debes recibir letra por letra (mediante getc) y en software almacenar en un buffer y luego que recibiste todos los caracteres,  analizar lo que te llegó, finalmente hacer un printf al lcd. El gets lo que hace es recibir caracteres letra por letra ( usando getc, o sea te lo hace por vos...) PERO hasta que llega un 0x0D o un ENTER o RETURN que es lo mismo y lo almacena en una variable  que tu le designas.


#use rs232..........
 
Examples:
 char string[30];

printf("Password: ");
gets(string);

if(strcmp(string, password))

   printf("OK");
 
El ejemplo del ccs explica un poco mejor eso. Si desde la pc haces que cada palabra termine con un 0x0D , es decir un caracter extra, podrás usar gets para tu cometido...