Op 14 juli 2006 17:55:50 schreef toko:
maar ik wil best wel denken maar dan moet ik wel wat tips want ik weet niet hoe die "if" en "then" werken,want ik denk dat ik iets moet doen als:

if portin(&h378)= treu then bladieblad..........

bijna correct.
zoiets?


 i = portin(&h378)

 if i and 1 then 'ingang1 = hoog
 if i and 2 then 'ingang2 = hoog
 if i and 4 then 'ingang3 = hoog
 if i and 8 then 'ingang4 = hoog
 enz 

maar volgens mij maak ik wel een foutje met de reeks adressen 1 2 4 8 enz voor de ingangen??? weet iemand dat?

en met dat output wil hebben dat als ik de muis omhoog beweeg dan een sinngaal komt op de derde pin en dat singaal dat stopt als ik de muis niet beweeg en dat de vierde pin een singaal komt als ik de muis naar beneden beweeg.(ik heb zon oude laptop met een joystickje tussen de toetsen als muis daar wou ik het script op laten draaien)

greetz jetse

dus zegmaar waneer de muis naar beneden over je monitor rolt? dat is een beetje lastig proggen. de (pijltjes?)toetsen zijn dan veel makkelijker..

dat wordt dan zoiets:


Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

'pijltje omlaag.
  if keycode = 67(??) then PortOut &H478, 8

'pijltje omhoog.
  if keycode = 68(??) then PortOut &H478, 0

End Sub

uuh, die keycode moet je even opzoeken..
dat doeik altijd met deze code, en wat te testen door op je toetsenboard te rammen


Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)

 msgbox "Keycode is: " + str(keycode)

End Sub

[Bericht gewijzigd door Martijn v op ]

Op 14 juli 2006 17:55:50 schreef toko:

if portin(&h378)= treu then bladieblad..........

of heb ik dat fout.

portin retourneert geen boolean maar een byte
Daarmee kun je dus een waarde lezen.
Wat je ermee gaat doen valt buiten de scope van een electronica forum, als je ermee gaat if-en en else-en dan kun je voor dergelijke vragen beter een vb forum zoeken.

als ik de muis omhoog beweeg ... als ik de muis naar beneden beweeg...

Daarvoor zijn MouseUp en MouseDown events.

Ik denk dat we de aansturing van de poorten duidelijk behandeld hebben.

Je was me net voor Martijn, ik laat het verder aan jou over :-)

Op 14 juli 2006 18:19:22 schreef hennep:
[...]

Wat je ermee gaat doen valt buiten de scope van een electronica forum, als je ermee gaat if-en en else-en dan

1000% gelijk! leer eerst eens programeren voordat je je windoos op zeep help door geheugen adressen te bombarderen met zelfgemaakte rotzooi.

Ik heb nog wel een boekje liggen voor je.
"Visual basiq in 24 uur".
Ik deed er ruim een week over :)



const lpt1=&h378


sub form_load
    ' deze code draait coordinaten systeem om van 0 , 0 
    ' linksboven naar 0,0 naar linksonder
    picture1.scaletop = 100
    picture1.scalewidth - 100
    picture1.scaleleft= 100
    picture1.scalewidth= -100
end sub

sub picture1_mousemove(x as long,y as long,button as integer )
 static old_x
 static_old_y
 dim shadow
 if button=1
  if x <> old_x then
     if x <old_x then
        out lpt1,4
     else 
        out lpt1,8
     end if
  end if
  if y <> old_y then
     if y< old_y then
        out lpt1,1
     else
        out lp1,2
     end if
  end if
  old_x=x
  old_y=y
  end if
end sub

sub picture1_mouseup
    ' wis de beweging
    out lpt1,0
end sub

voila

plak ene picturebox op je scherm
als je met je muis over die picturebox beweegt EN je houdt je linker knop 1 dan registreert dit programma bewegingen

pin 2 van je printerpoort wordt 5 volt als je omhoog beweegt
pin 3 wordt hoog als je omlaag beweegt
pin 4 wordt hoog als je links beweegt ne pin 5 wordt hoog als je rechts beweegt

als je de muisknopt lost gaan alle pinnen naar nul

let op deze code kan geen weg met diagonale bewegingen.

daarvoor meot er iets meer filtering gebeuren.

ook bibberen kan rare dingen doen. daar voor zou er een filter coeficient moeten komen die bewegingen kleiner dan een bepaald getal niet activeert :

pas de boal dan aan



const filter = 4

if x< (old_x - filter) then
end if
if x> ( old_x + filter) then
end if

enszovoort.

ik ben al een heel eind hij geeft geen errors meer aan.
alleen elke keer als ik het script run en druk op de knop "opstijgen" veranderd geen enkele pin in parmon.exe:+

greetzz jetse

het programma Parmon.exe doet precies hetzelfde als jij nu aan het schrijven bent. De LPT uitgangen aansturen en de ingangen controleren.

Heb je dit schema aangesloten op pin 3?
http://www.circuitsonline.net/circuits/view/34

verder, ik zou even je elektro testen met een oude PC die stuk zou mogen gaan.