Voila, j'aimerais savoir si dans le programme que je suis en train de finir, vous y voyez quelquechose de bizarre, merci
J'ai ajouté la balise code (#) pour plus de lisibilité.Code:Option Explicit Dim Dimension As String Dim nBuffer As Integer Dim i As Integer Private MonTableau() As String Dim Row As Integer Private Sub CmdAcqui_Click() CmdAcqui.Enabled = False CmdInit.Enabled = False MSComm1.Output = Chr(&H22) & Chr(&H14) & Chr(&H0) 'On met 0h a l'adresse 14h => On arrete l'acquisition des temperature avec MIP=0 MSComm1.Output = Chr(&H55) 'On va maintenant lire des données MSComm1.Output = Chr(&H33) & Chr(&H0) & Chr(&H1A) 'On lit la page avec OOh pour poids fort et 1Ah pour poids faible Do nBuffer = MSComm1.InBufferCount 'On fait une boucle pour obtenir que les 8 premieres valeurs de la page recu sur le port serie Loop While nBuffer < 8 Dimension = MSComm1.Input Dimension = Asc(Left(Dimension, 1)) ReDim MonTableau(Dimension - 1) MSComm1.Output = Chr(&H55) 'On va maintenant lire des données MSComm1.Output = Chr(&H33) & Chr(&H10) & Chr(&H0) 'On lit la page avec 1Oh pour poids fort et 0h pour poids faible Do nBuffer = MSComm1.InBufferCount 'On fait une boucle pour obtenir que les 34 premieres valeurs de la page recu sur le port serie Loop While nBuffer < 34 For i = 0 To Dimension - 1 MonTableau(i) = Mid(MSComm1.Input, i, i + 1) 'On place nos valeurs dans le tableau Next i MSChart1.TitleText = "Graphique de températures" MSChart1.chartType = VtChChartType2dLine With MSChart1 .Repaint = False ' Pas de rafraichissement .ColumnCount = 1 ' Nombre de courbe .RowCount = Dimension ' Nombre de points 'Tracé du graphique .Column = 1 ' Numero du graphique .ColumnLabel = "MonTableau" ' Libellé du 1er graphe 'On rentre les valeurs du graphe point par point For Row = 1 To Dimension .Row = Row 'Absisse X .RowLabel = CStr(Row) 'On convertit en Single .Data = MonTableau(Row) 'Ordonnée Y Next Row .Repaint = True ' Rafraîchissement du controle End With End Sub Private Sub CmdInit_Click() CmdInit.Enabled = False CmdAcqui.Enabled = False MSComm1.Output = Chr(&H22) & Chr(&HE) & Chr(&H40) 'On ecrit 40h a l'adresse 0Eh => On met CLR a 1 MSComm1.Output = Chr(&HA5) 'On efface la memoire Dim i As Variant For i = 0 To 10000000 'On met en palce une boucle pour laisser le temps au DS1616 d'effacer sa memoire i = i + 1 Next i MSComm1.Output = Chr(&H22) & Chr(&H29) & Chr(&H40) 'On ecrit 40h a l'adresse 29h => On met CS0 à 1 MSComm1.Output = Chr(&H22) & Chr(&HE) & Chr(&H10) 'Ecriture de l'octet 10h a l'adresse 0Eh => On met SE a 1 MSComm1.Output = Chr(&H22) & Chr(&HD) & Chr(&H1) 'On ecrit 01h a l'adresse 0Dh => On met 1 minute entre chaque acquisition de temperature CmdInit.Enabled = True CmdAcqui.Enabled = True End Sub Private Sub Form_Load() With MSComm1 .CommPort = 1 'On initialise la liaison serie sur le port 1 .Settings = "9600,N,8,1" 'On met une cadence de 9600 bauds, sans parité, 8 bits de données (avec un bit de start) et un bit stop .PortOpen = True 'On ouvre le port End With End Sub Private Sub Form_Unload(Cancel As Integer) MsgBox "Etes vous sur de vouloir quitter l'application?", vbQuestion + vbOKCancel, "Sortie" End Sub
Merci d'exploiter les fonctionnalités du forum.
yoda1234.
-----