vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Impulsfolge am LPT erzeugen 
Autor: skipper_reini
Datum: 28.10.10 11:55

Hallo:
Ich möchte am LPT eine Puls/Pause - Folge am Datenport (bit Do) schreiben und dazu habe ich nachstehenden source entwickelt. Es funktioniert alles, bis auf die Tatsache, dass das

ENDE-Flag -das von der Subroutine "Puls_auf_lpt(i)" innerhalb des Timer1_timer() auf TRUE gesetzt wird- nach dem Aufruf "Call Puls_auf_lpt(i)" nicht mehr berücksichtigt wird und mir keine

Antwort darüber gibt, ob die Impulsefolge schon fertig ist und ich nach dem Ende dieser weitere Aktionen setzen kann.
Die Variable Ende wird in der sub Timer1_Timer() richtig gesetzt, aber nach Verlassen der sub -obwohl die Variable public ist, falsch.

Meine Frage lautet daher: Wie erkenne ich das Ende der Impulsfolge?

Mein Entwurf soll so funktionieren:
1 Definiere die Anzahl der Pulse
2 Rufe die Sub auf mit der Übergabe der Anzahl und Signal vom Ende der Impulsfolge mit der public-variablen "Ende".
3 Die Variable "Ende" soll mir signalisieren, dass ich weitere Programmschritte machen kann.

Was mache ich falsch und wer hat eine Lösung?

Mit der Bitte um einen Lösungsansatz
R. Kellermann



Source:

Public impulse, i As Double
Public ende As Boolean

Private Sub Form_Load()

Timer1.Interval = 150 'Pulszeit
Timer2.Interval = 500 'Pausezeit

Timer1.Enabled = False
Timer2.Enabled = False

i = 10 'Anzahl der Impulse
impulse = 0 'Zählvariable

'Sub für die Pulse am LPT
Call Puls_auf_lpt(i, ende) 'Übergabe der Anzahl der Impulse

'Debug.Print ende 'Hier sollte die Variable das Ende der Impulsfolge als TRUE zeigen
If ende Then
Label2.Caption = impulse 'Gesamtzahl der durchgeführten Impulse
End If
End Sub


Private Sub Puls_auf_lpt(i, ende)

Timer1.Enabled = True
Timer2.Enabled = True
Call Timer1_Timer
Call Timer2_Timer

End Sub
Private Sub Timer1_Timer() 'Timer für die Pulszeit
impulse = impulse + 1
If impulse < i Then
Shape1(0).FillColor = vbRed

Label1.Caption = impulse
'out LPT_kanal, 0 Hier soll (später) am LPT auf D0 eine 0 sein
DoEvents
End If
'
'############ wenn Anzahl der impulse erreicht wurde, dann stoppe die Timer und die Variable "ende" wird True
If impulse > i Then
Timer1.Enabled = False
Timer2.Enabled = False
ende = True
End If
'#########################################################################
End Sub

Private Sub Timer2_Timer() 'Timer für die Pausezeit

Shape1(0).FillColor = vbBlack

'out LPT_kanal, 1 Hier soll (später) am LPT auf D0 eine 1 sein

DoEvents


End Sub[u]
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Impulsfolge am LPT erzeugen1.218skipper_reini28.10.10 11:55
Re: Impulsfolge am LPT erzeugen689eierlein28.10.10 14:24
Re: Impulsfolge am LPT erzeugen651skipper_reini29.10.10 12:32
Re: Impulsfolge am LPT erzeugen671ronnie28.10.10 20:55
Re: Impulsfolge am LPT erzeugen677skipper_reini29.10.10 12:34
Re: Impulsfolge am LPT erzeugen677skipper_reini29.10.10 14:19

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel