Forum: PC-Programmierung VB 2008 Interrupt durch LPT Port?


von christoph (Gast)


Lesenswert?

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...

von Sven H. (dsb_sven)


Lesenswert?

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.

von christoph (Gast)


Lesenswert?

Das ganze sollte aber nur einmal als Funktion eingefügt werden, nicht 
das ich im Programm das immerwieder abfragen muss...

von Sven H. (dsb_sven)


Lesenswert?

Ist dein Programm ein Konsolenprogramm oder eines mit grafischer 
Oberfläche?

von christoph (Gast)


Lesenswert?

Das Programm hat eine Grafische oberfläche.

Der Interrupt soll als Notaus dienen...

von Sven H. (dsb_sven)


Lesenswert?

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
}

von christoph (Gast)


Lesenswert?

Ok,

dann wer dich mal versuchen das in Basic zu übersetzen...

von Sven H. (dsb_sven)


Lesenswert?

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
Noch kein Account? Hier anmelden.