Lecture "temps réel" du port parallèle

cs_comablack Messages postés 12 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 septembre 2004 - 24 juin 2004 à 13:14
deadhand Messages postés 152 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 27 août 2010 - 29 nov. 2006 à 13:12
hello,
j'ai un petit montage éléctronique, qui, lorsque j'ouvre la porte passe du signal 1(+5v) à 0 (0v). Je récupère ce signal sur le port // mais je n'arrive n'arrive pas à réactualiser la réception. J'utilise un timer qui va voir sur le port // toutes les 200ms. Auriez-vous une idée ?
Merci

Public port
Public reception
Dim valeurs() As Long
--------------------------------------------------------------------

Private Sub Form_Load()
port = &H378
reception = Str(Inp(Val(port)))
Timer1.Interval = 1000
Init valeurs()
vol = CLng(0)
SetVolumeControl hmixer, volCtrl, vol
Do
Call Timer1_Timer
Loop While reception <> 0
End Sub
--------------------------------------------------------------------
Private Sub quitter_Click(Index As Integer)
End
End Sub
--------------------------------------------------------------------
Private Sub réamorcer_Click(Index As Integer)
'VERIFIE QUE LA PORTE SOIT FERMEE PUIS REMET LE VOLUME AU MAX
Do
Call Timer1_Timer
Loop While reception <> 0
If reception = 0 Then
    MsgBox ("La porte est ouverte !")
Else
    vol = CLng(65535)
    SetVolumeControl hmixer, volCtrl, vol
End If
End Sub
-----------------------------------------------------------------
Private Sub Timer1_Timer()
'CHECK LA PORTE ET MET LE VOLUME PRINCIPAL A 0 SI OUVERT

If reception = 0 Then 'porte ouverte
    vol = CLng(0)
    SetVolumeControl hmixer, volCtrl, vol
    lblouvert.Visible = True
    shpouvert.Visible = True
    lblferme.Visible = False
    shpferme.Visible = False
Else
    lblouvert.Visible = False
    shpouvert.Visible = False
    lblferme.Visible = True
    shpferme.Visible = True
End If

End Sub

3 réponses

cs_PhilippeE Messages postés 437 Date d'inscription mercredi 18 décembre 2002 Statut Membre Dernière intervention 10 août 2010 2
24 juin 2004 à 15:29
Il manque un DoEvents dans ta boucle infinie.
Dans ta situation actuelle, le programme n'a pas de temps CPU pour regarder les évènements.
0
cs_comablack Messages postés 12 Date d'inscription lundi 14 juin 2004 Statut Membre Dernière intervention 16 septembre 2004
24 juin 2004 à 22:10
Salut,
je te remercie de ton temps mais en fait j'ai trouvé la solution.. sa aide de réfléchire des fois ;)
en fait je n'avais pas mis le reception = Str(Inp(Val(port))) dans le timer... donc c'est clair qu'il allait pas le réactualiser
Merci et a+
0
deadhand Messages postés 152 Date d'inscription dimanche 15 octobre 2006 Statut Membre Dernière intervention 27 août 2010 3
29 nov. 2006 à 13:12
C'est avec quelle dll que t'utilises reception = Str(Inp(Val(port))) ?
Moi j'ai inpout32.dll mais j'arrive pas a capter un signal (si quelqu'un peut m'aider ...)  par contre pour en envoyé un pas de problème !
0