VisualBasic LPT input werkt niet?

Beste mensen, het werkt niet?

Ik wil met men bi-directionele LPT poort zowel data inlezen met VBinp (888) en uitsturen met VBout 888 instructie.

Draai momenteel VB5.0 met Win98, heb ook WIN95IO.dll geinstaleerd en de volgende tekst boven men programma gezet zoals het hoord:

Private Declare Sub vbOut Lib "WIN95IO.dll" (ByVal nPort As Integer, ByVal nData As Integer)
Private Declare Sub vbOutw Lib "WIN95IO.dll" (ByVal nPort As Integer, ByVal nData As Integer)
Private Declare Function vbInp Lib "WIN95IO.dll" (ByVal nPort As Integer) As Integer
Private Declare Function vbInpw Lib "WIN95IO.dll" (ByVal nPort As Integer) As Integer

HET PROBLEEM:
ik kan dus met vbOut 888, 1 prima data naar de poort sturen en uitlezen d.m.v. leds.
Sluit in nu een gnd of 5volt aan op een van de LPT pinnen en gebruik de instructie vbInp (888), lees ik aleen maar de gegevens die ik er voorheen naar de poort had toegestuurd, dus lekker bi-directioneel.

ofwel
vbOut 888, 3
" nu hang ik pin van bit 1 en 2 aan gnd
input = vbInp (888)
"lees input uit en zet in een text box en deze geeft gewoon 3 aan ipv 0?

heb ik een parameter niet goed ingesteld of ...?

Wie kan het zeggen, bij voorbaad dank
Raimond

wat jij leest is het register.
je vraagt nl. de waarde van het register op, en niet van de pen.

Reinstein

Op 10 januari 2004 13:39:54 schreef Raimond:
vbOut 888, 3
" nu hang ik pin van bit 1 en 2 aan gnd
input = vbInp (888)
"lees input uit en zet in een text box en deze geeft gewoon 3 aan ipv 0?

Het is logisch, deze functie die vraagt alleen op welke van de uitgangen er aan staat, datg zie je ook:

code:

input = vbInp (888)

Je geeft niet aan welke ingang (poort) je wilt opvragen. Om een ingan uit te lezen zul je een andere functie moeten gebruiken, die waarschijnlijk niet in deze DLL zit...

Hij was al kapot toen je em aan mij gaf!!!

Manne ik heb het al gevonden maar toch bedankt voor de moeite.

Het zit namelijk zo, om de poortrichting om te draaien van output naar input (888)en vise versa, zal je eerst een waarde tussen 32 en 64 moeten sturen naar output 890. Alhoewel je maar 4bits direct uit hebt met 890, regelen de hogere bits van dit register toch iets en dus ook de richting van de bi-directionele poort. Ofwel 0-31 ouput(888) 32-63 input(888) 64-....etc. Wat een beetje klooien al niet kan opleveren. Ik hoop dat andere deze info ook kunnen gebruiken in hun projectjes.

Mensen ...later, Raimond