TODOPIC

Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: marvicdigital en 24 de Mayo de 2009, 22:19:18

Título: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: marvicdigital en 24 de Mayo de 2009, 22:19:18
Bueno , saludos a todo el foro.
Soy novato en Visual Basic, tengo la versión 6, he leído bastantes cositas para hacer, pero no logro encontrar lo que realmente necesito..la idea es esta:

Tengo un PIC y una EEprom conectada a este, la idea es enviar por RS232 una cadena de texto y que esta se grabe en la memoria en ascii, sobre el ascii lo hace sin problema solo es escribir el texto en el cuadro y a enviar, ese ejemplo lo vi ya..pero hay un problema que quiero resolver, y es, como la cadena de texto la envía caracter por caracter todo de una, yo quiero que halla una temporización entre cada caracter  de tal forma que le de tiempo al PIC de grabar ese código ASCII en la memoria o si puede ser mejor que el programa espere la confirmación de que el PIC ya grabó la memoria para que envíe el siguiente caracter, cosa que haría enviando un código desde el pic por el TX, ya que solo uso RX y TX..hay forma de hacer esto? me podrían dar una pequeña guía de como hacerlo?

De verdad que les agradecería mucho la ayuda que me puedan dar.

Saludos
Título: Re: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: PalitroqueZ en 24 de Mayo de 2009, 23:41:53
mejor que una temporización, se me ocurre lo siguiente:

- el PC envía un dato (y se queda esperando confirmación del pic, para enviar el siguiente dato)
- el pic recibe el dato (vía interrupción)
- graba el dato en la eeprom (vía interrupción)
- esperas la interrupción de finalización de escritura de la eeprom.
- envías la confirmación al PC


Título: Re: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: BrunoF en 25 de Mayo de 2009, 01:45:53
Hola Marvic. Que es lo que necesitás exáctamente?

En este subforo hay ejemplos de recepción de datos por puerto serie. No es dificil. Lo que Pedro indica es lo más utilizado y para nada incorrecto.


Un saludo.
Título: Re: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: marvicdigital en 25 de Mayo de 2009, 03:03:20
mejor que una temporización, se me ocurre lo siguiente:

- el PC envía un dato (y se queda esperando confirmación del pic, para enviar el siguiente dato)
- el pic recibe el dato (vía interrupción)
- graba el dato en la eeprom (vía interrupción)
- esperas la interrupción de finalización de escritura de la eeprom.
- envías la confirmación al PC




Si, es lo que necesito, mi pregunta es si cuando el puerto serial envía el primer dato o byte correspondiente al primer caracter que debo hacer para que no siga con el siguiente si no que espere una respuesta del PIC para que siga con el siguiente caracter..es que en el ejemplo que encontré envía todo el texto escrito en un recuadro sin esperar nada, solo enviar y listo..hay alguna instrucción o una opción en el MScomm para que haga esa espera?..o me podrían dar un pequeño ejemplo, no pido que me hagan el programa, solo con un ejemplo de como se hace tengo más que suficiente.
Me disculpan un poco mi torpeza pero apenas estoy empezando con el visual Basic y hay cosas que me faltan por aprender y para no sentirme frustrado solo quisiera poder hacer este programita por lo menos lo básico, ya a medida que valla experimentando con más lo iré mejorando y todos esos arreglos que se hacen cuando se aprende más.

Mil gracias por la ayuda y guía que me puedan dar.

Saludos

Edit: BrunoF gracias de nuevo, por tu interés por ayudar, es de admirar y un ejemplo a seguir..espero hacerlo muy pronto.
La idea global es para mi cartel, como tu sabes estoy usando el 16F877, ya le agregue el puerto RS232, la memoria 24LC256 y por medio de un Hyperterminal puedo grabar caracteres en la memoria mensajes y todo lo necesario, pero como quiero hacerme el programa así sea sencillo, solo con tal de ver correr a ese cartel y poderlo mostrar por acá, por eso mi interés..por ahora he hecho algo muy simple basándome en un ejemplo de nuestro amigo Todopic, que en este post (http://www.todopic.com.ar/foros/index.php?topic=7013.0) da un ejemplo de envío y recepción de datos, solo quiero saber como se hace para cuando se envíe el primer byte por el puerto, el programa de una pausa y espere la respuesta del pic, cuando se reciba la respuesta del pic con algún código hexadecimal el programa siga con el siguiente byte y así hasta finalizar..solo espero haberme hecho entender  :mrgreen:

Mil gracias de nuevo a este espectacular foro.

Título: Re: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: Suky en 25 de Mayo de 2009, 20:29:43
Creo que se puede hacer de la siguiente manera:

Código: Visual Basic
  1. Dim TextoEnviar as String
  2. Dim Letra as Char
  3. Dim LargoTexto as Byte
  4. Dim i as Byte
  5. '*************************
  6. 'Adquiero String a enviar:
  7. TextBox.text=TextoEnviar
  8. 'Largo del String
  9. LargoTexto=TextoEnviar.Lenght
  10. 'Primer Letra:
  11. Letra=TextoEnviar.chars(0)
  12. 'Envio primer Letra y habilito evento de mscomm
  13. i=1
  14.  
  15. '*******************
  16. Dentro del evento mscomm
  17. if (i=LargoTexto -1) then
  18.     'Seria ultima Letra
  19.    Letra=TextoEnviar.chars(i)
  20.     'Envio Letra y deshabilito evento
  21. else
  22.     Letra=TextoEnviar.chars(i)
  23.     'Envio Letra
  24.    i+=1
  25. end if

En este momento no puedo hacer un ejemplo mejor porque estoy de viaje, tomé una compu prestada y no tiene VB  :mrgreen: El código es VB.net pero no debe haber mucha diferencia. Debes definir bien como va a ser el protocolo de la comunicación, con esto me refiero a como determinará el PIC que le ha llegado la última letra, etc.
Título: Re: Una ayuda por favor, envío de datos a PIC y esperar..
Publicado por: marvicdigital en 26 de Mayo de 2009, 12:25:26
Creo que se puede hacer de la siguiente manera:
  • Adquerir texto a enviar, enviar primer letra y habilitar evento de recepción de mscomm
  • Al recibir un ok del PIC enviar siguiente letra, hasta finalizar texto

Código: Visual Basic
  1. Dim TextoEnviar as String
  2. Dim Letra as Char
  3. Dim LargoTexto as Byte
  4. Dim i as Byte
  5. '*************************
  6. 'Adquiero String a enviar:
  7. TextBox.text=TextoEnviar
  8. 'Largo del String
  9. LargoTexto=TextoEnviar.Lenght
  10. 'Primer Letra:
  11. Letra=TextoEnviar.chars(0)
  12. 'Envio primer Letra y habilito evento de mscomm
  13. i=1
  14.  
  15. '*******************
  16. Dentro del evento mscomm
  17. if (i=LargoTexto -1) then
  18.     'Seria ultima Letra
  19.    Letra=TextoEnviar.chars(i)
  20.     'Envio Letra y deshabilito evento
  21. else
  22.     Letra=TextoEnviar.chars(i)
  23.     'Envio Letra
  24.    i+=1
  25. end if

En este momento no puedo hacer un ejemplo mejor porque estoy de viaje, tomé una compu prestada y no tiene VB  :mrgreen: El código es VB.net pero no debe haber mucha diferencia. Debes definir bien como va a ser el protocolo de la comunicación, con esto me refiero a como determinará el PIC que le ha llegado la última letra, etc.

Gracias Suky, por tu ayuda, voy a leer un poco más para poder entender mejor tu respuesta y aplicarla al VB 6 ojala pueda hacerlo hoy..claro que estoy bastante atareado..

Gracias.

Saludos