Autor Tema: VISUAL BASIC+PICBASIC+USB  (Leído 5325 veces)

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

Desconectado atlasdelcarinakeel

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 277
VISUAL BASIC+PICBASIC+USB
« en: 28 de Septiembre de 2005, 09:55:00 »
Que tal a todos, este post esta en otro subforo, y alli me recomendaron que lo postera en el subforo de visual basic asi que alla va, espero que puedan ayudarme, voy a colocar el post tal como lo puse en el otro subforo:


Que tal a todos, use el generador EasyHID para generar el codigo de comunicacion entre un PIC y el PC a traves del puerto USB,
la cuestion es que no entiendo la sintaxis del lenguaje en bajo nivel (PICBASIC) y el del alto nivel(VISUAL BASIC), estoy usando un PIC18F4455, y cuando lo conecto al puerto USB el sistema lo detecta, pero no se como enviar datos hacia el PIC desde el PC y viceversa. Lo que pude descubrir son los procedimientos del programa generado en visual basic para enviar y recibir datos pero no entiendo la sintaxis estos son los procedimientos:


"*****************************************************************
" on read event...
"*****************************************************************
Public Sub OnRead(ByVal pHandle As Long)

" read the data (don"t forget, pass the whole array)...
If hidRead(pHandle, BufferIn(0)) Then
" ** YOUR CODE HERE ** "se que aqui tengo que escribir el codigo para leer el dato pero no se la sintaxis
" first byte is the report ID, e.g. BufferIn(0)
" the other bytes are the data from the microcontrolller...
End If
End Sub


"*****************************************************************
" this is how you write some data...
"*****************************************************************
Public Sub WriteSomeData()
BufferOut(0) = 0 " first by is always the report ID
BufferOut(1) = 10 " first data item, etc etc

" write the data (don"t forget, pass the whole array)...
hidWriteEx VendorID, ProductID, BufferOut(0)
End Sub


En que parte de estos procedimientos tengo que escribir el codigo, y como seria la sintaxis si quisiera enviar(al PIC) y recibir(desde el PIC) la letra "A" en un TextBox
por ejemplo.


Y lo mismo para el programa en PicBasic, en que parte del codigo recibo y envio la letra "A" y como seria la sintaxis,
el codigo del PICBASIC es el siguiente:



" ************************************************************
" * receive data from the USB bus *
" ************************************************************
DoUSBIn:
USBBufferCount = USBBufferSizeRX " RX buffer size
USBService " keep connection alive
USBIn 1, USBBuffer, USBBufferCount, DoUSBIn " read data, if available
return



" ************************************************************
" * wait for USB interface to attach *
" ************************************************************
DoUSBOut:
USBBufferCount = USBBufferSizeTX " TX buffer size
USBService " keep connection alive
USBOut 1, USBBuffer, USBBufferCount, DoUSBOut " if bus available, transmit data
return


Si alguien a trabajado con el EasyHID, espero que me pueda ayudar, si necesitan que coloque todo el codigo de visual y picbasic lo puedo subir.

De antemano gracias a todos.

PD: disculpen lo extenso del post.
Si tienes un problema y tiene solucion, para que te preocupas? y si no tiene solucion, para que te preocupas?

Desconectado Colores

  • Moderadores
  • PIC16
  • *****
  • Mensajes: 232
RE: VISUAL BASIC+PICBASIC+USB
« Respuesta #1 en: 28 de Septiembre de 2005, 12:05:00 »
No tengo idea de que es el EasyHID, parece interesante. A ver:


"*****************************************************************
" on read event...
"*****************************************************************
Public Sub OnRead(ByVal pHandle As Long)

" read the data (don"t forget, pass the whole array)...
If hidRead(pHandle, BufferIn(0)) Then
" ** YOUR CODE HERE ** "se que aqui tengo que escribir el codigo para leer el dato pero no se la sintaxis
" first byte is the report ID, e.g. BufferIn(0)
" the other bytes are the data from the microcontrolller...
End If
End Sub

*************************
Lo que dice eso (creo) "si BufferIn(0) es verdadero, o sea distinto de cero entonces ya se recibieron datos.
BufferIn tiene que ser un array y BufferIn(0) puede llegar ser la longitud de los datos. El resto del array (BufferIn(1), BufferIn(2).........) contiene los datos.
Creo que es así nomás de sencillo.

"*****************************************************************
" this is how you write some data...
"*****************************************************************
Public Sub WriteSomeData()
BufferOut(0) = 0 " first by is always the report ID
BufferOut(1) = 10 " first data item, etc etc

" write the data (don"t forget, pass the whole array)...
hidWriteEx VendorID, ProductID, BufferOut(0)
End Sub

***************************

Lo mismo pero al revés:
Supongamos que querés enviar la sequencia 4, 6, 3, 8, 10.
Entonces:

Dim BufferOut(5) as integer
BufferOut(0) = 5 "No se que es el report ID, supongo que es la longitud de los datos a enviar o recibir.
"Ahora vienen los datos:
BufferOut(1) = 4
BufferOut(2) = 6
BufferOut(3) = 3
BufferOut(4) = 8
BufferOut(5) = 10

Y después lo enviás con lo que te proponen ellos:

hidWriteEx VendorID, ProductID, BufferOut(0)

La duda que tengo es que tipo de dato debería ser el array "BufferOut", yo lo tomé como enteros pero podría ser string o long.
Si fuera string para pasar los datos a un TextBox lo único que habría que hacer sería:

txtBox.Text = BufferOut(1)  "Muestro el primer dato.

Salu2.

Desconectado atlasdelcarinakeel

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 277
RE: VISUAL BASIC+PICBASIC+USB
« Respuesta #2 en: 28 de Septiembre de 2005, 12:13:00 »
Gracias Colores2, voy a intentar hacer eso, y despues te cuento. Por cierto el EasyHID es un software que genera un codigo fuente para PIC en PICBASIC y codigo fuente en visual basic y otros lenguajes de alto nivel para hacer una comunicacion USB entre un PC y un PIC que tenga modulo USB (18F4455 en mi caso), puedes bajar el programa completamente gratis en:

http://www.mecanique.co.uk/products/usb/easyhid.html  Sonrisa Gigante
Si tienes un problema y tiene solucion, para que te preocupas? y si no tiene solucion, para que te preocupas?

Desconectado BAFAN

  • PIC10
  • *
  • Mensajes: 19
RE: VISUAL BASIC+PICBASIC+USB
« Respuesta #3 en: 30 de Octubre de 2005, 05:02:00 »
Buenas Yo el EasyHid ese lo he usado y no me funciona ... conecta y todo, o vamos eso parece, pero no envia ni recibe ya que en codigo del visual basic no puedes indicarle por que Pipe estas recibiendo datos o enviando datos. Si alguien consigue que funcione que me lo diga pq a mi no me funciona sin embargo el programa en C# que hay en otro subforo es el unico que me funciona q envia y recibe datos, pero por contra partida, no lleba interrupciones para tratar los datos.
Bueno si alguien consigue un programa fiable por Visual Basic q lo cuente q es interesante. Angelito
SaludosGiño


 

anything