Hey,
ik zou graag ledjes willen besturen op mijn printerpoort. Ik heb al een plugin voor winamp, maar ik zou ook graag een looplicht in visual basic programeren en andere effecten. Ik heb het artikel van Jeroen boere
http://www.circuitsonline.net/artikelen/view.php?id=26&page=1
Al gelezen. Er stond dat ik een Dll moest downloaden (io.dll). Dat het ik gedaan, maar toen ik hem in visual basic toevoegde kreeg ik een foutmelding dat het geen goed active x module was. Weet iemand hoe ik dat kan oplossen?
Dat is het dan ook niet.
Je zet het in je win/system en in VB zet je de referentie naar het bestand. Zie de site van io.dll daar staat alles wat je nodig hebt
[Bericht gewijzigd door ikkedus op ]
Ik heb het gedownload in een zipje en daar zat Io.dll in en een readme. in die readme stond niks daar niks overin.
Maar hoe zou dat dan moeten?
Als ik hem nu aanstuur:
Call LPT_DataReg_PinHigh(BIT0)
Call sleep (100)
Call LPT_DataReg_PinLow(BIT0)
Zegt hij sub or function not defined
Berry
A PIC-based MP3 player: www.apic-bmp.nl.tt | Intresse in techniek? www.djoamersfoort.nl
Visual Basic Prototypes
Private Declare Sub PortOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Byte)
Private Declare Sub PortWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Integer)
Private Declare Sub PortDWordOut Lib "IO.DLL" (ByVal Port As Integer, ByVal Data As Long)
Private Declare Function PortIn Lib "IO.DLL" (ByVal Port As Integer) As Byte
Private Declare Function PortWordIn Lib "IO.DLL" (ByVal Port As Integer) As Integer
Private Declare Function PortDWordIn Lib "IO.DLL" (ByVal Port As Integer) As Long
Private Declare Sub SetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub ClrPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Sub NotPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte)
Private Declare Function GetPortBit Lib "IO.DLL" (ByVal Port As Integer, ByVal Bit As Byte) As Boolean
Private Declare Function RightPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function LeftPortShift Lib "IO.DLL" (ByVal Port As Integer, ByVal Val As Boolean) As Boolean
Private Declare Function IsDriverInstalled Lib "IO.DLL" As Boolean
Het moet dus zijn
Call SetPortBit("Data", BIT0)
Call sleep (100)
Call ClrPortBit("Data", BIT0)
niet geheel zeker van de argumenten
Op 29 november 2004 19:59:01 schreef Berry:
Het moet dus zijn
Call SetPortBit("Data", BIT0)
Call sleep (100)
Call ClrPortBit("Data", BIT0)
Const LPT_REGISTER_DATA = &H378
Const LPT_REGISTER_STATUS = &H378 + 1
Const LPT_REGISTER_CONTROL = &H378 + 2
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
enz.
Call SetPortBit(LPT_REGISTER_DATA, BIT0)
Call sleep (100)
Call ClrPortBit(LPT_REGISTER_DATA, BIT0)
Noot: als je de functiedeclaratie (zie Berry's post) in een module zet en de functie daarbuiten wilt aanroepen (bijv. in een form), moet je 'private' weglaten
Ik heb die functies gewoon in mijn form gezet.
De code die je me gaf klopt, ergaat alleen nog 1 ding fout
Nu zegt hij bij :
Call sleep (100)
Sub Or function nog defined
Moet ik deze dan declarderen?
Berry
A PIC-based MP3 player: www.apic-bmp.nl.tt | Intresse in techniek? www.djoamersfoort.nl
is het niet een van deze
Sleep (100)
Call Sleep (100)
Sleep 100
Call Sleep 100
geen idee hoe de syntax is van VB
Op 30 november 2004 07:21:54 schreef Rickzz:
Moet ik deze dan declarderen?
Ja, bij je andere declaraties zetten ->
Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
n.b. Sleep is default minimaal 10 tot 20 ms.
Op 30 november 2004 07:21:54 schreef Rickzz:
Ik heb die functies gewoon in mijn form gezet.
Dan moet er 'Private' voor idd, ook bij die hierboven
[Bericht gewijzigd door ikkedus op ]
Oke bedankt nu geeft hij geen foutmeldingen meer:D
maar nu heb ik nog een vraag:P... (zie foto)
Ik zou graag al deze apart willen aansturen hoe zou dat moeten? Ik had gedacht dat dit makkelijker zou zijn.
Met de code die je geschreven hebt, je moet alleen het lijstje met constanten nog afmaken t/m bit 7
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
enz.
Bedoel je mij?
Heb je de hardware al gebouwd?
Dan kun je hem voor mij testen:P (ik heb het nog niet gebouwd)
Ik heb hem zo afgemaakt:
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
Const Bit3 = &H8
Const Bit4 = &H16
Const Bit5 = &H32
Const Bit6 = &H64
Const Bit7 = &H128
KLopt dit?
Dus als ik dit typ Gaan allen ledjes aan?
Op 30 november 2004 17:24:26 schreef Rickzz:
Ik heb hem zo afgemaakt:Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
Const Bit3 = &H8
Const Bit4 = &H16
Const Bit5 = &H32
Const Bit6 = &H64
Const Bit7 = &H128KLopt dit?
Dus als ik dit typ Gaan allen ledjes aan?
Als je ze allemaal aanroept wel
Call SetPortBit(LPT_REGISTER_DATA, BIT0)
Call SetPortBit(LPT_REGISTER_DATA, BIT1)
Call SetPortBit(LPT_REGISTER_DATA, BIT2)
Call SetPortBit(LPT_REGISTER_DATA, BIT3)
Call SetPortBit(LPT_REGISTER_DATA, BIT4)
Call SetPortBit(LPT_REGISTER_DATA, BIT5)
Call SetPortBit(LPT_REGISTER_DATA, BIT6)
Call SetPortBit(LPT_REGISTER_DATA, BIT7)
Bij Bit7 gaat er iets fout:
Call SetPortBit(LPT_REGISTER_DATA, BIT7)
Foutmelding: overflow
Kan ik dit ergens in een module zetten:
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
Const Bit3 = &H8
Const Bit4 = &H16
Const Bit5 = &H32
Const Bit6 = &H64
Const Bit7 = &H128
[/edit]
Probleem is opgelost:
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
Const Bit3 = &H8
Const Bit4 = &H16
Const Bit5 = &H32
Const Bit6 = &H64
Const Bit7 = &H128
(gewoon dit weglaten:P)
[Bericht gewijzigd door Rickzz op ]
Op 30 november 2004 21:04:05 schreef Rickzz:
Zou iemand mijn programma willen testen?:P
wel hebben, alleen ik heb het printje nog niet af....
groeten
Ik heb het je net gestuurd via mail, ik ga dat printje ook maken maar ik heb me ledjes nog niet. maar ik ben er achter gekomen dat ik iets belangrijks ben vergeten: Ik heb niet ingesteld dat ze ook uit worden gezet
[edit]
moet dat met notportbit?
Call NotPortBit(LPT_REGISTER_DATA, BIT0)
[/edit]
[Bericht gewijzigd door Rickzz op ]
Op 30 november 2004 20:30:14 schreef Rickzz:
Bij Bit7 gaat er iets fout:
Call SetPortBit(LPT_REGISTER_DATA, BIT7)
Foutmelding: overflow
[...]
(gewoon dit weglaten:P)
nee, niet weglaten.
Je waarden zijn niet goed, daar komt die overflow van. Het is hex. Sorry, ik had het eerder niet gezien.
Const BIT0 = &H1
Const BIT1 = &H2
Const BIT2 = &H4
Const BIT3 = &H8
Const BIT4 = &H10
Const BIT5 = &H20
Const BIT6 = &H40
Const BIT7 = &H80
Op 30 november 2004 21:13:15 schreef Rickzz:
[edit]
moet dat met notportbit?
Call NotPortBit(LPT_REGISTER_DATA, BIT0)
[/edit]
Uitzetten gaat met ClrPortBit.
NotPortBit toggelt de uitgang. 'not' staat voor inverteren van huidige waarde ofwel toggle (aan zetten als die uit is en uit als die aan is)
Bedankt:)
Is er nu een programma waarmee ik kan kijken of mijn programma de poorten ook echt open zet en weer dicht?
Anoniem
Je kan een ledje aansluiten in serie met 470 Ohm (let op de polen, anders zal het niet werken!) om te zien welke uitgang hoog of laag is...
MichielPH
Nieuwe afkorting een idee? --> CMIIR = Correct Me If I'm Rong
Kan je softwarematig mee testen:
http://www.geekhideout.com/parmon.shtml