Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - aiuto con MSCOMM...
Forum - Visual Basic 6 - aiuto con MSCOMM...

Avatar
luigi91 (Normal User)
Newbie


Messaggi: 1
Iscritto: 19/03/2010

Segnala al moderatore
Postato alle 18:51
Venerdì, 19/03/2010
ciao a tutti, sono nuovo del forum, ma spero che per questo la mia domanda non venga trascurata... :D .... ho un problea nella programmazione con l'mscomm...

in pratica, devo creare un programma che deve:
1) invio un byte di sincronizzazione (valore in decimale=255)
2) la periferica ritorna un byte (254)
3) aspetto fino a quando non miarriva questo segnale, poi invio 253
(per 253 è impastato uno spostamento della periferica, per252 un altro spostamento, per251 un terzo... in pratica X, Y, Z)
4) devo inviare un byte che leggerò da una textbox, alla periferica
..........
questo è in linea di principio... e questo è quello che ho scritto fino ad ora:
niente da fare. se può esserti utile... questo è fin dove sono arrivato:

Private Sub apricom_Click()

MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True
End Sub

Private Sub esci_Click()

MSComm1.PortOpen = False
Unload Me
End Sub

Private Sub invia_Click()

DATO = 255
invio_dato (DATO)
Call ricevi_dato

DATO = 253
invio_dato (DATO)
Call ricevi_dato

DATO = Val(X.Text)
invio_dato (DATO)
Call ricevi_dato

DATO = 252
invio_dato (DATO)
Call ricevi_dato
DATO = Val(Y.Text)
invio_dato (DATO)
Call ricevi_dato

DATO = 251
invio_dato (DATO)
Call ricevi_dato
DATO = Val(Z.Text)
invio_dato (DATO)
Call ricevi_dato
MsgBox ("FINE")

End Sub
Private Sub invio_dato(DATO)
MSComm1.Output = Chr$(DATO)
End Sub
Private Sub ricevi_dato()
Dim Rx$
Dim arrivato As Boolean
arrivato = False
Do
Rx$ = MSComm1.Input
If Len(Rx$) Then
Text1.Text = Rx$
arrivato = True
End If
Loop While arrivato = True
arrivato = False
End Sub

non riesco a capire, cosa c è di sbagliato?!
perchè il programma non resta fermo nell'aspettare il dato ricevuto dalla seriale?!... grazie mille a tutti.... aspetto risposte...


PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6405
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 19:04
Venerdì, 19/03/2010
Intanto dovrebbe essere

Loop While arrivato = False


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote