Aide pour mon programme de hacheur pour moteur à CC
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010
-
27 nov. 2008 à 19:27
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010
-
27 nov. 2008 à 21:41
bonjour,
Dans le cadre de loisir je me suis mis au VB.
Actuellement je suis sur un petit projet de commande de moteur à cc, en gros un un hacheur (on hache de signal continu pour diminuer la tension efficaice), que je pilote via le port serie. ( pour info j'ai en sortie une petite carte 8 sortie analogique et je pilote un seule sortie en demandant une sortie avec mscomm.output =chr$(1)).
bref dans mon code j'ai une tempo , je n'ai pas utilisé le timer car ca ne marchait pas alors j'ai mis un for i=1 to x next i.
bref mon problème n'est pas la mais ceci : lors de l'execution de ma boucle infini do-loop la moindre interruption sur le hscroll (barre de regul de la vitesse) coupe momentanément ma boucle et mon moteur stoppe ou ralenti fortement un bref instant.
Ya t il la possibilité que cette action hscroll fasse sa tache et qu'elle n'intervienne pas sur ma boucle tempo.
pour plus de comprehension voici mon prog mercide votre aide:
*********************************
Dim arret As Boolean
Private Sub Command1_Click()
Command1.Enabled = True
If Command1.Enabled = True Then
Command1.Enabled = False
Command3.Enabled = False
End If
arret = True
MSComm1.CommPort = 1
MSComm1.Settings = "9600,n,8,1"
MSComm1.PortOpen = True
Dim x As Long
Dim y As Long
Do
HScroll1.Refresh
x = HScroll1.Value
X1 = 100 - x
MSComm1.Output = Chr$(255)
For i = 1 To x * 10000
i = i + 1
Next i
MSComm1.Output = Chr$(0)
For i = 1 To X1 * 10000
i = i + 1
Next i
If arret = False Then
Exit Do
End If
DoEvents
Loop
MSComm1.PortOpen = False
End Sub
Private Sub Command2_Click()
arret = False
Command1.Enabled = True
Command3.Enabled = True
End Sub
Private Sub Command3_Click()
Unload Me
End Sub
kix
A voir également:
Aide pour mon programme de hacheur pour moteur à CC
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 27 nov. 2008 à 19:56
salut,
ce n'est pas qu'il sort de la boucle mais que les 2 actions se "bouffent" l'une l'autre.
l'évènement va prendre la main sur ta boucle donc le code de l'évènement va s'exécuter, puis le code va revenir là ou il était dans sa boucle.
il faudrait que ton code s'execute dans un thread séparé, ce qui n'est pas faisable en VB6. désolé....
le timer était pourtant une bonne idée, la scroll agissant alors uniquement sur son intervalle.
qu'est-ce qui ne fonctionnait pas dans cette méthode? intervalle "mini" trop long?
ps :
Private Sub Command1_Click()
Command1.Enabled = True <- si on est ici c'est forcément que le bouton était enabled
If Command1.Enabled = True Then <- forcément vrai, plutôt 2 fois qu'une ^^
++
<hr size="2" width="100%" />
Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_looloo78
Messages postés15Date d'inscriptionvendredi 18 février 2005StatutMembreDernière intervention26 novembre 2010 27 nov. 2008 à 20:28
salut et merci,
pour tes commentaires j'en prends bonne note.
pour le timer j'ai bien essayé mais je n'avais pas d'action, c'etait bizarre.
ex: avec timer.interval=1000 je n'avis pas du tout 1secondes.
tout semblait simultané. alors ???
en tout cas avec mon code pourrais tu m'indiquer la marche à suivre pour mon timer?