TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: Xa2 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
-
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....
-
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
-
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
-
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