Autor Tema: transmision datos puerto serie!!!  (Leído 2222 veces)

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

Desconectado Xa2

  • PIC12
  • **
  • Mensajes: 58
transmision datos puerto serie!!!
« en: 07 de Julio de 2004, 05:40:00 »
Buenas foreros!
Tengo una pregunta para vosotros, he leido en este foro que el visual basic manda los datos en ANSI, y el PIC trabaja con ASCII; mi pregunta es la siguiente:

Que hay que hacer para que el visual mande en Ascii y asi el PIC pueda entender lo que recibe??? Yo quiero mandar el PWm por el puerto serie, el PIC lo convierte a entero lo que recibe y ejecuta el duty que ha recibido al driver del motor, es decir, envio por el visual basic el duty cycle, por el puerto serie!

Mi codigo si recibe lo que me manda el PIC, pero no es capaz de mandar nada, o por lo menos que lo entienda el PIC, porque mando y el motor no hace nada!!
Saludos y gracias anticipadas

PD: aqui os pongo mi codigo en Visual Basic

*****************************************************
Private Sub cmdDatos_Click()
Dim buferentrada As String
buferentrada = MSComm1.Input      "En esta variable se almacena lo que entra por el puerto serie
txtRecibir.Text = buferentrada
"txtRecibir.Text & buferentrada "aca se almacena lo que llega del puerto y lo que se escribe en recibir.txt (ojo esto esta con locked)

End Sub



Private Sub cmdTransmite_Click()
Dim TextoSalida As String
Dim asciisalida As String

TextoSalida = txtTransmitir.Text
MSComm1.Output = TextoSalida "Se transmite todo lo que hay en el textbox

End Sub

Private Sub Conectar_Click()
If Form1.Caption = "Desconectado" Then
    Form1.Caption = conectado
    MSComm1.PortOpen = True
    Conectar.Caption = "desconectar"
Else: Form1.Caption = "Conectado"
    Form1.Caption = "Desconectado"
    MSComm1.PortOpen = False
    Conectar.Caption = "Conectar"
End If
   
End Sub

Private Sub Form_Load()
Dim CommPort As String, Handshaking As String, Settings As String
Dim buferentrada    As String

MSComm1.CommPort = 1        "puerto com1
MSComm1.InputLen = 0


End Sub

Private Sub MSComm1_OnComm()
MSComm1.Settings = "9600,n,8,1" "configuracion del puerto serie

End Sub

Private Sub Texto_Change()

End Sub

Private Sub Texto2_Change()

End Sub


Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: transmision datos puerto serie!!!
« Respuesta #1 en: 07 de Julio de 2004, 12:36:00 »
el vb, al igual que el hyperterminal, manda los datos en modo ascii...
pero ten en cuenta, que se mandan los datos en cadenas de 8 bits...

entonces, si el terminal, manda la cadena con el número 145, mandará tres bytes...
el pic leerá 49 52 53 que corresponden a los dígitos decimales 1 4 5

aquí te dejo un link a un listado de los caracteres ascii
http://www.ascii.cl/es/

creo que la opción es ahora el tirar un poco de conocimientos de matemáticas....

Desconectado badtzdizzy

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 234
RE: transmision datos puerto serie!!!
« Respuesta #2 en: 07 de Julio de 2004, 14:32:00 »
Hola

Para que visual basic te mande el ascii de un dato solo tienes que hacer lo siguiente

MSComm.Output=Chr(dato)

donde dato es lo que deseas mandar hacia el PIC


Desconectado Abago

  • PIC24F
  • *****
  • Mensajes: 792
RE: transmision datos puerto serie!!!
« Respuesta #3 en: 07 de Julio de 2004, 21:43:00 »
Creo que eso es lo que aparentemente está haciendo el programa que ha dejado XA2

TextoSalida = txtTransmitir.Text
MSComm1.Output = TextoSalida "Se transmite todo lo que hay en el textbox

en donde txtTransmitir.Text  es una textbox, por lo que lo envía como un string...

xa2, lo que no entiendo es porque lo haces así pudiendo poner
MSComm1.Output = txtTransmitir.text

Desconectado amartin_16

  • PIC10
  • *
  • Mensajes: 7
RE: transmision datos puerto serie!!!
« Respuesta #4 en: 04 de Octubre de 2004, 23:28:00 »
Hola a todos..
yo esoty haciendo un programa en el cual el micro me manda los datos en hexadecimal al visual basic. ¿Alguien sabe como mandar desde el visual en hexa al micro??

Saludos


 

anything