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
  #31  
Vecchio 21-03-2010, 11.58.28
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

Altro up:

Public Dato_Finale As Byte

......> Dato_Finale = Text1.text

pertanto userai questa variabile per leggere il valore di ritorno.
Rispondi citando
  #32  
Vecchio 21-03-2010, 15.53.16
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

.... forse ci siamo

Ho aggiunto 2 timer (metti l'intervallo a 800 per il momento così vedi il risultato nella finestra Ricezione Integer). Ora, premendo invia, si attiva la procedura dell'evento oncomm inserito in ogni timer. Noterai che inserendo un nuovo valore all'interno di una o tutte le textbox, verrà restituito il nuovo valore nel text Ricezione Integer. A questo punto bisogna solo inserire una procedura if then o select case o else if (dipende da cosa si deve fare) che, nel caso sia inserito il valore di 254 (come mi hai detto) si avrà la reazione di cui hai bisogno. Provalo. I timer sono timer.2, timer3 e timer4.

Ciao




Codice:
Public dato_X As Byte
Public dato_Y As Byte
Public dato_Z As Byte
Public Dati_Ricevuti As String
Public Tutto 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



Timer2.Enabled = True


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 Timer2_Timer()


dato_X = txt_X.Text
MSComm1.Output = Chr$(dato_X)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$


              Text1.Text = Asc(Tutto)
            End If
            

            
Timer3.Enabled = True
Timer2.Enabled = False
End Sub

Private Sub Timer3_Timer()


dato_Y = txt_Y.Text
MSComm1.Output = Chr$(dato_Y)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$

              Text1.Text = Asc(Tutto)
              
            End If
            

            
Timer4.Enabled = True
Timer3.Enabled = False
End Sub

Private Sub Timer4_Timer()


dato_Z = txt_Z.Text
MSComm1.Output = Chr$(dato_Z)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$

              Text1.Text = Asc(Tutto)

            End If
            

            
Timer2.Enabled = True
Timer4.Enabled = False
End Sub
Rispondi citando
  #33  
Vecchio 21-03-2010, 16.41.02
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
.... forse ci siamo

Ho aggiunto 2 timer (metti l'intervallo a 800 per il momento così vedi il risultato nella finestra Ricezione Integer). Ora, premendo invia, si attiva la procedura dell'evento oncomm inserito in ogni timer. Noterai che inserendo un nuovo valore all'interno di una o tutte le textbox, verrà restituito il nuovo valore nel text Ricezione Integer. A questo punto bisogna solo inserire una procedura if then o select case o else if (dipende da cosa si deve fare) che, nel caso sia inserito il valore di 254 (come mi hai detto) si avrà la reazione di cui hai bisogno. Provalo. I timer sono timer.2, timer3 e timer4.

Ciao




Codice:
Public dato_X As Byte
Public dato_Y As Byte
Public dato_Z As Byte
Public Dati_Ricevuti As String
Public Tutto 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
 
 
 
Timer2.Enabled = True
 
 
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 Timer2_Timer()
 
 
dato_X = txt_X.Text
MSComm1.Output = Chr$(dato_X)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$
 
 
              Text1.Text = Asc(Tutto)
            End If
 
 
 
Timer3.Enabled = True
Timer2.Enabled = False
End Sub
 
Private Sub Timer3_Timer()
 
 
dato_Y = txt_Y.Text
MSComm1.Output = Chr$(dato_Y)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$
 
              Text1.Text = Asc(Tutto)
 
            End If
 
 
 
Timer4.Enabled = True
Timer3.Enabled = False
End Sub
 
Private Sub Timer4_Timer()
 
 
dato_Z = txt_Z.Text
MSComm1.Output = Chr$(dato_Z)
        Dim Rx$
        Rx$ = MSComm1.Input
        If Len(Rx$) Then
            Tutto = txt_Rx.Text & Rx$
 
              Text1.Text = Asc(Tutto)
 
            End If
 
 
 
Timer2.Enabled = True
Timer4.Enabled = False
End Sub
uff... niente da fare... dopo le opportune impostazioni ( azzeramento dei timer al LOAD, inserimento di altri timer, seguendo sempre la stessa tipologia per l'invio dei segnali di sincronizzazione-255,253,.252,251-) la periferica non vuole proprio saperne di rispondere, unica azione notata :
nella textbox di ricezione esce il val 0 ..........
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...
Rispondi citando
  #34  
Vecchio 21-03-2010, 17.38.25
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:
nella textbox di ricezione esce il val 0 ..........
e invece può essere una bella notizia. Fammici riguardare.

dopo l'apertura della porta inserisci questo:
....
MSComm1.PortOpen = True

If
MSComm1.DSRHolding = False Then
MsgBox "Periferica non pronta!"
MSComm1.PortOpen = False

End If

Dovremmo almeno capire se il Pic è pronto a comunicare. Anche perchè, tra i casi di uno 0 in ricezione, può esserci proprio l'assenza di comunicazione (le velocità sono settate tutte giuste, anche quelle di windows?).


Ciao

Antonio

P.s. Direi che è meglio che non quoti tutto il mio post sennò diventa lunghissimo.... se fossi in te toglierei quelle parti e metterei solo gli aggiornamenti sennò faccio fatica a seguire anch'io

Ultima modifica di Caronte : 21-03-2010 alle ore 19.31.22
Rispondi citando
  #35  
Vecchio 21-03-2010, 22.58.19
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
....
MSComm1.PortOpen = True

If MSComm1.DSRHolding = False Then
MsgBox "Periferica non pronta!"
MSComm1.PortOpen = False

End If

Dovremmo almeno capire se il Pic è pronto a comunicare. Anche perchè, tra i casi di uno 0 in ricezione, può esserci proprio l'assenza di comunicazione (le velocità sono settate tutte giuste, anche quelle di windows?).
indovina un po?!?...
-- "Periferica non pronta!" --
sisi, le velocità sono quelle, sto usando lo standar della porta com baud rate 9600!!... anche la periferica è settata a questa velocità.... non capisco, sta a significare che vuole un altro po di ritardo?!... o cosa?!


aspetta un attimo, stai parlando di questo vero?!...
http://msdn.microsoft.com/en-us/libr...07(VS.60).aspx
ma la mia periferica non controlla anche questo segnale, sto utilizzando una comunicazione full duplex, al fine di azzerare l'handshake e gestirlo via software... cos hai in mente?!...
__________________
L'importante è non smettere di fare domande.
non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...

Ultima modifica di luigi91 : 21-03-2010 alle ore 23.08.20
Rispondi citando
  #36  
Vecchio 21-03-2010, 23.48.02
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:
gestirlo via software... cos hai in mente?!...
ormai, a quest'ora 2 neuroni su 6..... comunque come ti dicevo, ho in mente di fare un passo per volta, intendo nel codice. L'intervallo non è importante, al momento, è importante farsi mandare indietro dal pic qualsiasi cosa, un carattere, un numero sbagliato, qualsiasi cosa ma togliere lo 0. Se non sbaglio il pic ha un firmware che hai programmato/implementato tu. Ti dico che ho fatto delle altre prove, anche con la Muin e il codice funziona. L'elettronica la diamo per scontata (avrai fatto le tue giuste prove), ma il firmware? Siamo certi che sia giusto? Attenzione, non sto mettendo in dubbio niente, ma, perlomeno io faccio così, cerco di andare per esclusione in questi casi, ricontrollando ogni parte. Pertanto abbiamo tre parti, tra loro condivise, hardware, firmware e software di controllo (cioè VB6). Non ho la competenza per mettere mani sul fuoco, ma il codice che è stato scritto, l'ultima versione, a me legge qualsiasi cosa. Uno zero in risposta effettivamente può anche essere un errore nella modalità di trasmissione. Da lì non si scappa, oncomm ti restituisce tutto quello che avviene sulla com e ribadisco a me ritorna indietro tutto. Una curiosità, quando fai le prove, attivi il codice prima o dopo aver acceso il pic? Ribadisco che non ci capisco niente di pic, ma vedo che sulla Muin, per implementare il firmware, bisogna prima tener premuto il tasto reset e rilasciarlo quando il bootloader sta iniziando la sua ricerca. Magari è una domanda stupida (occhio che il tuo motto dice: non esistodono domande stupide, esistono solo domande fatte BENE o fatte MALE...) ma il duo dispositivo con il pic ha un pulsante di reset? Altra domanda se ho ben capito: se tutto funzionasse, inviando il numero 254 lui ci dovrebbe rispondere 253, giusto?

Beh... spero che la notte ci porti consiglio perchè io sto andando a consigliarmi...

A domani
Rispondi citando
  #37  
Vecchio 22-03-2010, 21.22.10
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

Orbene, prova a eseguire questo test, via seriale con il pic, e vediamo cosa ci risponde: http://www.settorezero.com/wordpress...serial-tester/

Ciao
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.02.06.


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