Hallo, ich hoffe mir kann wer helfen... Ich möchte das mein Programm ganz normal abläuft, allerdings wenn sich ein Eingang am LPT port ändert soll das Programm unterbrochen werden. Die Abfrage vom LPT port läuft schon. Ich hab es mit einer DO LOOP Schleife probiert wo in der Schleife Application.DoEvents() drin steht, das funktioniert aber leider nicht, das Programm bleibt dann nur in der Schleife und macht sonst nichts...
Du könntest einen Timer nehmen, im Timer_Tick Event den LPT abfragen und wenn er deinen gewünschten Zustand hat ein weiteres Event auslösen.
Das ganze sollte aber nur einmal als Funktion eingefügt werden, nicht das ich im Programm das immerwieder abfragen muss...
Ist dein Programm ein Konsolenprogramm oder eines mit grafischer Oberfläche?
Das Programm hat eine Grafische oberfläche. Der Interrupt soll als Notaus dienen...
In deiner grafischen Oberfläche wird dann sowieso alles mit Events verarbeitet. Ein Klick auf einen Button löst auch einen solchen Event aus. Wenn du jetzt nen Timer nimmst und das Intervall auf, sagen wir 30ms stellst und im Interrupt Handler deines Timers den LPT abfragst könntest du auch eine globale Variable verändern und diese in deiner Schleife abfragen:
1 | bool NotAus = false; |
2 | |
3 | [...]
|
4 | void WaitForNotAus() |
5 | {
|
6 | while (NotAus == false) // Oder while (!NotAus) |
7 | {
|
8 | [mach dein Zeug] |
9 | Application.DoEvents(); // Wichtig, da sonst der Timer Event nicht ausgelöst wird!! |
10 | }
|
11 | }
|
12 | [...]
|
13 | |
14 | im Timer Event: |
15 | |
16 | void Timer_Tick([...]) |
17 | {
|
18 | if (checkLPT()) |
19 | {
|
20 | NotAus = true; |
21 | }
|
22 | }
|
Sieh das als "Pseudocode" ;-) An Sonsten könnte dir das helfen: http://www.developerfusion.com/tools/convert/csharp-to-vb/
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.