Autor Tema: Una ayuda por favor, envío de datos a PIC y esperar..  (Leído 3592 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Una ayuda por favor, envío de datos a PIC y esperar..
« 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

Desconectado PalitroqueZ

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 5474
    • Electrónica Didacta
Re: Una ayuda por favor, envío de datos a PIC y esperar..
« Respuesta #1 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


La propiedad privada es la mayor garantía de libertad.
Friedrich August von Hayek

Desconectado BrunoF

  • Administrador
  • DsPIC30
  • *******
  • Mensajes: 3865
Re: Una ayuda por favor, envío de datos a PIC y esperar..
« Respuesta #2 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.
"All of the books in the world contain no more information than is broadcast as video in a single large American city in a single year. Not all bits have equal value."  -- Carl Sagan

Sólo responderé a mensajes personales, por asuntos personales. El resto de las consultas DEBEN ser escritas en el foro público. Gracias.

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Una ayuda por favor, envío de datos a PIC y esperar..
« Respuesta #3 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 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.

« Última modificación: 25 de Mayo de 2009, 03:23:15 por marvicdigital »

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Una ayuda por favor, envío de datos a PIC y esperar..
« Respuesta #4 en: 25 de Mayo de 2009, 20:29:43 »
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.
No contesto mensajes privados, las consultas en el foro

Desconectado marvicdigital

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 311
Re: Una ayuda por favor, envío de datos a PIC y esperar..
« Respuesta #5 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