# LPT /Parallel Port Strom an/aus



## WerOLF (22. August 2008)

LPT1 Pin2 geht nicht aus....
Hallo liebe Gemeinde 

ich bin komplett neu auf dem Gebiet der VB Programmierung.
Bisher habe ich nur PHP programmiert - und ich fühle mich jetzt hilflos in VB 

Leider kann ich in dem Unterforum "Hardware-/Schnittstellenprogrammierung" keinThread eröffnen... warum auch immer.
Entschuldigt bitte wenn diese frag ezum 1000. mal besprochen wurde, jedoch verstehe ich immer nicht wieso und warum es gerade der Quellcode ist und warum es bei mir dennoch nicht funktioniert....

Mein Problem ist folgendes:

ich habe bereits ein kleines Programm geschriben welches mir auf Pin2 des LPT Kabels Strom gibt.
Es leuchtet dann eine LED. Jetzt habe ich eine 2. LED in den Pin3 gesteckt und die Funktion des tools entschrechend erweitert.
Leider passiert aber nun nicht folgendes:
Button "Pin2 an" => LED an
Button "Pin2 aus" => LED aus

Button "Pin3 an" => LED2 an
Button "Pin3 aus" => LED2 aus

sondern:

Button "Pin2 an" => LED bleibt aus
Button "Pin2 aus" => LED an

Button "Pin3 an" => passiert nichts
Button "Pin3 aus" => LED geht aus, LED2 geht an

Ich denke es liegt daran, das ich jeweils in den "aus" Buttons keine Anweisung habe, um einfach den Pin2 zu deaktivieren.

Schaut euch bitte einmal den Quelltext an, habt ihr eine einfache Lösung parat und könntet mir in 1,2 Sätzen erklären was nun falsch gelaufen ist ?


```
Public Class Form1
    Public Declare Function Inp Lib "inpout32.dll" Alias _
    "Inp32" (ByVal PortAddress As Integer) As Integer

    Public Declare Sub Out Lib "inpout32.dll" Alias "Out32" _
    (ByVal PortAddress As Integer, ByVal Value As Integer)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'inpout32.bas
        '&h378 ist die Hexadezimaladresse des Parallelports
        '1 steht für Datenleitung 0

        Out(&H378, 1)
    End Sub

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        'inpout32.bas
        '&h378 ist die Hexadezimaladresse des Parallelports
        '1 steht für Datenleitung 0

        Out(&H378, 2)
    End Sub

    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        'inpout32.bas
        '&h378 ist die Hexadezimaladresse des Parallelports
        '1 steht für Datenleitung 0

        Out(&H378, 3)
    End Sub

    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        'inpout32.bas
        '&h378 ist die Hexadezimaladresse des Parallelports
        '1 steht für Datenleitung 0

        Out(&H378, 4)
    End Sub
End Class
```

(Für die Zukunft: ich bin auf jeden fall bereit VB zu lernen, denn das könnte ich als GUI verwenden und mit PHP verknüpfen... wuhahaha)

Viele grüße aus dem hohen Norden,
WerWolf


----------



## Zvoni (22. August 2008)

1. Du codest in VB.NET also bitte dann auch im richtigen Forum posten (Hier ist VB4-6)

2. Aus dem Bauch heraus:
Du hast unter Button4 ein
Out(bla, 3)
und unter Button3 ein
Out(Bla, 4)

Verwechselt?

Weiter: Wenn ich mich richtig erinner werden die Pins dadurch angesprochen, dass man per Bit-Matrix einen entsprechenden Wert übergibt.
0 --> Alle Pins=kein Strom
1 --> Pin1=Strom, alle anderen kein Strom
2 --> Pin2=Strom, alle anderen kein Strom
3 --> Pin1=Strom, Pin2=Strom, alle anderen kein Strom
4 --> Pin3=Strom, alle anderen kein Strom
5 --> Pin1=Strom, Pin3=Strom, alle anderen kein Strom
usw.
wie gesagt, alles aus dem Bauch heraus, kann mich also auch heftigst irren.


----------



## VBstNET (22. September 2008)

Ich sehe das Problem darin dass du keinen Dezimalzahlen nicht in binär umrechnest:

Pin 1 = 1
Pin 2 = 2
Pin 3 = 4
Pin 4 = 8
Pin 5 = 16
Pin 6 = 32
Pin 7 = 64
Pin 8 = 128

Pin1 + Pin2 wäre dann = 1+2 =3


----------

