spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica di base > Informatica > P. in Visual Basic

Rispondi
 
Strumenti discussione Modalità  visualizzazioe
  #21  
Vecchio 19-03-2010, 08.56.42
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Citazione:
no guarda, la parte elettronica è tutta a posto,
Non lo metto in dubbio. Dicendo che di pic non ci capisco nulla, voglio dire che non so che tipo di dati devono essere comunicati: byte, binari, esadecimali, stringa, 4 stagioni, cotto carciofini... non lo so e questo è importante.
Hai un sistema per capire se i dati vengono ricevuti dal pic (magari un bel led lampeggiante?).
In caso contrario sarebbe meglio vedere cosa e se invii tramite Hyper terminal (o simili).
Citazione:
devono essere immessi su delle text box e poi trasferite in seriale ad un microcontrollore
Non essendo il sottoscritto un guru, devo sapere esattamente il tipo di dato e la modalità richiesta.

Fammi sapere

Antonio
Rispondi citando
  #22  
Vecchio 19-03-2010, 13.28.55
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da Caronte Visualizza messaggio
Non lo metto in dubbio. Dicendo che di pic non ci capisco nulla, voglio dire che non so che tipo di dati devono essere comunicati: byte, binari, esadecimali, stringa, 4 stagioni, cotto carciofini... non lo so e questo è importante.
Hai un sistema per capire se i dati vengono ricevuti dal pic (magari un bel led lampeggiante?).
In caso contrario sarebbe meglio vedere cosa e se invii tramite Hyper terminal (o simili).

Non essendo il sottoscritto un guru, devo sapere esattamente il tipo di dato e la modalità richiesta.

Fammi sapere

Antonio
allora, il dato che si aspetta la periferica è un byte...
in quanto all'uso di hiperterminal, ho cominciato proprio da lì; con quei programmi il sistema funziona devo solo rendere il tutto automatico...
in poche parole devo fare questo:

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... aspetto risposte, grazie...
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...
Rispondi citando
  #23  
Vecchio 19-03-2010, 15.05.42
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Anche se ho bogno di controllare una cosa e qui dove sono non ci riesco, direi :

Dim Dati As Byte

MsComm1.Output = Chr$(255)

poi... > devo andare ho dei clienti. Appena ho finito continuo. Prova a vedere cosa succede
Rispondi citando
  #24  
Vecchio 19-03-2010, 15.11.09
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da Caronte Visualizza messaggio
Anche se ho bogno di controllare una cosa e qui dove sono non ci riesco, direi :

Dim Dati As Byte

MsComm1.Output = Chr$(255)

poi... > devo andare ho dei clienti. Appena ho finito continuo. Prova a vedere cosa succede
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.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?!
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...
Rispondi citando
  #25  
Vecchio 19-03-2010, 15.15.32
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

C'è della confusione. A fra poco
Rispondi citando
  #26  
Vecchio 19-03-2010, 16.44.38
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da Caronte Visualizza messaggio
C'è della confusione. A fra poco
caronte, aspetto sempre tue notizie...
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...
Rispondi citando
  #27  
Vecchio 20-03-2010, 18.00.49
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Eccomi. Nel poco tempo libero che ho avuto ho cercato di andare avanti (lavoro, moglie, rov, lavoro, moglie... sai com'è...) e ho ottenuto il risultato di far comunicare e ricevere il dato. Ho inserito anche un timer (devi metterlo a 104 millisecondi di intervallo). Però non siamo ancora in porto (e l'esame si avvicina...., scherzo). Stanotte, prima non posso, ci torno su anche perchè mi piace sta cosa. Per provarlo ho ponticellato tx/rx in un adattatore usb/seriale e funziona. Ovvero, restituisce i dati, ma sono da convertire. In sintesi, il mio piano é fare uno step per volta. Intanto ti mando questo piccolo aggiornamento nel quale si sfrutta l'evento oncomm /threshold: quest'ultimo rileva qualsiasi cosa che transita sulla com. Sta a noi prendere quello che ci serve, poi è fatta (spero...).

Tranquillo che cerco di fare tutto il possibile (sempre nelle mie possibilità) per darti una mano. Non ti preoccupare, hai detto che l'elettronica funziona, pertanto dobbiamo solo trovare il modo giusto per 'comunicare' .

Ciao




Citazione:
Public dato_X As Byte
Public dato_Y As Byte
Public dato_Z As Byte
Public Dati_Ricevuti As String





Private Sub btn_clear_Click()
txt_Rx.Text = ""
Text1.Text = ""
End Sub

Private Sub btn_Com_Click()

MSComm1.CommPort = txt_Com.Text
MSComm1.Settings = "115200,n,8,1"
MSComm1.RThreshold = 1
MSComm1.PortOpen = True

End Sub

Private Sub Command1_Click()

On Error GoTo Errori_Variabili

Timer1.Enabled = True

dato_X = txt_X.Text
dato_Y = txt_Y.Text
dato_Z = txt_Z.Text

MSComm1.Output = Chr$(dato_X) + Chr$(dato_Y) + Chr$(dato_Z)



Errori_Variabili:

If Err.Number = 13 Then
MsgBox "Valori da 0 a 255 !", vbExclamation
End If

Err.Clear
End Sub


Private Sub Form_Load()

End Sub

Private Sub MSComm1_OnComm()

Dim Rx$
Rx$ = MSComm1.Input
If Len(Rx$) Then
txt_Rx.Text = txt_Rx.Text & Rx$
Text1.Text = txt_Rx.Text


End If


End Sub

Private Sub Timer1_Timer()

Call MSComm1_OnComm

End Sub
Rispondi citando
  #28  
Vecchio 21-03-2010, 01.39.59
luigi91 luigi91 non è collegato
Robottaro senior
 
Data registrazione: 28-01-2010
Residenza: potenza
Età : 27
Messaggi: 50
Potenza reputazione: 38
luigi91 E' per ora ancora un mistero
Predefinito

Citazione:
Orginalmente inviato da Caronte Visualizza messaggio
Eccomi. Nel poco tempo libero che ho avuto ho cercato di andare avanti (lavoro, moglie, rov, lavoro, moglie... sai com'è...) e ho ottenuto il risultato di far comunicare e ricevere il dato. Ho inserito anche un timer (devi metterlo a 104 millisecondi di intervallo). Però non siamo ancora in porto (e l'esame si avvicina...., scherzo). Stanotte, prima non posso, ci torno su anche perchè mi piace sta cosa. Per provarlo ho ponticellato tx/rx in un adattatore usb/seriale e funziona. Ovvero, restituisce i dati, ma sono da convertire. In sintesi, il mio piano é fare uno step per volta. Intanto ti mando questo piccolo aggiornamento nel quale si sfrutta l'evento oncomm /threshold: quest'ultimo rileva qualsiasi cosa che transita sulla com. Sta a noi prendere quello che ci serve, poi è fatta (spero...).

Tranquillo che cerco di fare tutto il possibile (sempre nelle mie possibilità) per darti una mano. Non ti preoccupare, hai detto che l'elettronica funziona, pertanto dobbiamo solo trovare il modo giusto per 'comunicare' .

Ciao

bel lavoro...XD... credo k fin qui c ero arrivato anch io, logicamente zoppicando un bel po... XD... la cosa che non mi riusciva però:

inviare il file nella textbox solo dopo aver ricevuto un dato in ricezione dalla COM (il dato è 254).

bel dilemma... ho provato anche:

Private Sub MSComm1_OnComm()
Dim Rx$
Rx$ = MSComm1.Input
If Len(Rx$) Then
arrivato = Rx$
End If
End Sub

Private Sub ricevi_dati()

Do
arrivato = text1.text
Loop While arrivato = 254

End Sub

ma niente...
credo sia questo il maggior problema da affrontare... uff, maledetta scuola che insegna poco e niente sulla programmazione!!!,... comunque sia, grazie mille per l'interessamento!!!... aspetto altro notizie in maniera abbastanza disperata... XD
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...
Rispondi citando
  #29  
Vecchio 21-03-2010, 11.42.35
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Citazione:
bel lavoro...XD...
mica tanto.... visto che non funziona..... Purtroppo stanotte mi sono addormentato... alla scrivania

Comunque eviterei il do loop. Piuttosto due timer ed inserire la lettura dell'evento oncomm nei due timer, al fine di impostare il giusto intervallo di lettura, inserirei una cosa di questo genere:

Private Sub Form_Load()

timer1.enabled = false
timer2.enabled = false

End Sub


Private Sub Timer1_Timer()

Call MSComm1_OnComm

timer2.enabled = true
timer1.enabled = false

End Sub

Private Sub Timer2_Timer()

Call MSComm1_OnComm

timer1.enabled = true
timer2.enabled = false

End Sub


Ovviamente faccio partire solo timer1 contestualmente all'avvio dell'invio del dato.

Se il dato è 254 imposterei altresì un ciclo if then nel buffer di ricezione:

if x = chr$(254) then y ......

verso sera ci riguardo... a dopo
Rispondi citando
  #30  
Vecchio 21-03-2010, 11.52.57
L'avatar di Caronte
Caronte Caronte non è collegato
Administrator
 
Data registrazione: 15-10-2009
Residenza: Ferrara
Età : 49
Messaggi: 2,962
Potenza reputazione: 328
Caronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua famaCaronte La sua reputazione è oltre la sua fama
Predefinito

Poi, l'evento on comm deve essere così modificato, inserento l'operatore Asc:

Private Sub MSComm1_OnComm()

Dim Rx$
Rx$ = MSComm1.Input
If Len(Rx$) Then
txt_Rx.Text = txt_Rx.Text & Rx$
Text1.Text = Asc(txt_Rx.Text)


End If


Ho appena provato, è quello giusto. In sintesi nel text in alto ti appaiono i caratteri, nel text1 (quello in basso ti ritorna in byte.

Ultima modifica di Caronte : 21-03-2010 alle ore 12.05.07
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalità  visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code è Attivato
Le smilies sono Attivato
[IMG] è Attivato
Il codice HTML è Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
problemino rccdcc Elettronica 6 29-10-2010 18.55.07
Problemino con interrupt Italia Elettronica 2 07-10-2009 11.34.33
ho un problemino con wxdevc++ angel10 P. in C, C++ 0 31-01-2008 17.34.59
Problemino ...... Charlie Elettronica 6 01-02-2006 21.49.34
problemino con una macro reda P. in C, C++ 2 26-05-2005 19.57.47


Tutti gli orari sono GMT. Adesso sono le: 07.03.21.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB