TODOPIC
Lenguajes de programación para PC => Visual Basic => Mensaje iniciado por: ENO45 en 05 de Marzo de 2006, 16:44:00
-
hola tengo un pequeño problema tengo que enviarle al pic un byte y recibir su respuesta, enviarle otro byte y recibir su respuesta asi sucesivamente hasta llegar a 18 bytes y comensar de nuevo con el primer byte, la recepcion creo que esta solucionada a traves de interrupcion el drama que tengo ahora es el envio me creia que podia hacerlo con el time pero no funciona alguien tine alguna idea de como lo puedo hacer porque estoy re trabado en esto. lo que yo habia hecho es esto
Private Sub Timer2_Timer()
MSComm1.Output = "0"
MSComm1.Output = "1"
MSComm1.Output = "2"
MSComm1.Output = "3"
MSComm1.Output = "4"
MSComm1.Output = "5"
MSComm1.Output = "6"
MSComm1.Output = "7"
MSComm1.Output = "8"
MSComm1.Output = "9"
MSComm1.Output = "a"
MSComm1.Output = "b"
MSComm1.Output = "c"
MSComm1.Output = "d"
MSComm1.Output = "e"
MSComm1.Output = "f"
MSComm1.Output = "g"
MSComm1.Output = "h"
End Sub
Hasta 2 bytes me funciona bien despues no anda
ENO45
-
Pues no se si te he entendido bien
pero yo lo que haria es: no utilizar interrupciones.
en visual basic haria lo siguiente:
For c = 1 To 18 Step 1
;poner el dato a enviar
Call enviar
Call recibir
;hacer lo que sea con el dato recibido
Next
Private Sub enviar()
MSComm1.Output = datoaenviar
Do While MSComm1.OutBufferCount > 0
Loop
End Sub
Private Sub recibir()
Do While MSComm1.InBufferCount = 0
DoEvents
Loop
datoarecibir = MSComm1.Input
End Sub
en el pic lo mismo solo que primero call recibir y despues call enviar.
aunque el puerto serial es asincrono en las rutinas de recepcion del pic y de la pc los programas se quedan trabados hasta recibir un dato. y eso da cierta sincronia
por cierto no se si sabias pero por el puerto serial los datos se van en ascii SIEMPRE, asi como los estabas mandando llegan al pic como "30", "31".... y las letras como su respectivo ascii a="61", b="62"
para enviarlos y que llegen 00,01.....0A..0F hay que convertirlos a ascii, si te interesa por ahi tengo la rutina, solo me avisas 