Toon posts:

[VB7] DLPortIO krijg ik niet aan de praat

Pagina: 1
Acties:

Verwijderd

Topicstarter
code:
1
2
3
4
5
6
7
8
Module Module1
    Declare Sub DlPortWritePortUchar Lib "dlportio.dll" _
        (ByVal Port As Long, ByVal Value As Byte)

    Sub Main()
        DlPortWritePortUchar(1020, 1)
    End Sub
End Module


Waarom doet dit het niet? Ik heb al 100 keer gegoogled en alle dlportio bestanden bekeken en nog doet dit het niet.
Onder Delphi werkt zoiets wel (met ander poort driver) en ook port 1020 value 1 zijn goed (de DTR output van de COM1 seriele poort).
Andere voorbeeld code kan ik niet compileren, waarschijnlijk omdat VB7 geen oudere versies kan openen (toch?). Het voorbeeld executable bij dlportio werkt wel goed.
Andere DLL's kan ik wel gebruiken in VB7 en als ik de naam van de dlportio functie verander komt er een error. Dus de sub DlPortWritePortUchar wordt zeker wel gevonden. Ook de Sub Main() wordt gewoon ge-executed en dus: waarom werkt het dan nog niet :? :? :?

  • Sensei_D
  • Registratie: Maart 2002
  • Laatst online: 20-08 13:24
is het voor aansturen van de paralelle poort? Kun je ook port.dll voor gebruiken, daar heb ik nog wel een voorbeeld code-tje van

sensei_d.fpv channel


Verwijderd

VB7 = VB.NET neem ik aan ?
DLportIO = voor LPT hé

en het probleem is dat de data types in VB6 anders zijn dan in VB.NET
Ze zijn aangepast naar de standaard
vb => in een integer kan nu dubbel zoveel data
en ook in vele andere types is eht dus verandert
als jij dus
Declare Sub DlPortWritePortUchar Lib "dlportio.dll" _
(ByVal Port As Long, ByVal Value As Byte)
doet stuur je met die PORT AS LONG in VB.NET gewoon een veel te groot getal
Doe daar een Port As Integer ;)
De byte mag blijven

Verwijderd

Topicstarter
_/-\o_ _/-\o_ Dat moest ik nou net even weten! Met Port As Integer doet die het gewoon probleemloos! Bedankt Mr.ChronoM

Inderdaad is het VB.net (gewoon andere naam voor vb7). En het is voor aansturen van de seriele poort, omdat par1 voor de printer is en ik de ISA par2 kaart niet in de ak31 mobo kan prikken (heeft geen ISA slots). Bovendien is de seriele poort beter beveiligd tegen kortsluiting :-)

Topic kan wel op slot (er zijn al genoeg dlportio topics)

Verwijderd

Ik heb wel ervaring genoeg met DLportIO om dit te weten dacht ik zo, ben blij dat het werkt ;) (moest ook ooit een tip krijgen voor ik het vond :p )

maar kan je DLportIO nu gebruiken om de COM poort te sturen of niet ? Heb het eigenlijk nooit opgezocht en gebruik het alleen voor PowerLCD ... maar zou wel handig zijn eigenlijk

Verwijderd

Inprincipe *ZOU* het kunnen, maar het werkt een stuk praktisher/makkelijker/sneller als je er gewoon de normale win32 api (of als er een managed class voor is die) te gebruken.

Verwijderd

Topicstarter
Verwijderd schreef op 12 november 2002 @ 20:50:
maar kan je DLportIO nu gebruiken om de COM poort te sturen of niet ? Heb het eigenlijk nooit opgezocht en gebruik het alleen voor PowerLCD ... maar zou wel handig zijn eigenlijk
Ja dus. In het boekje "PC poorten anders benut (voor dos/win9x)" staat hoe je de COM, LPT en joystick-poort kunt aansturen met een aantal nuttige uitbreidings-schakelingen. Met DLPortIO werkt al deze code ook onder winxp, wel handig!

Kort overzichtje: BA=&h3F8 / &h2F8 / &h3E8 / &h2E8 voor com1/2/3/4. met writeport(BA+4) bits 0 en 1 schakel je de DTR en RTS uitgangen. met readport(BA+6) bit 4-7 lees je de CTS/DSR/RI/DCD ingangen in. writeport(BA+3) bit 6 is TxD uitgang.

Iedere uitgang is +12/-12V max. 10mA beveiligd tegen overbelasting, ingangen >1.25V=hoog, <1V=laag (ingangsweerstand 10k).

Nadeel van de COM poort is natuurlijk het beperkt aantal uitgangen, maar de kortsluit-beveiliging maakt het wel goed! Bovendien heb ik nu 2 COM-poorten vrij en zijn poort-uitbreidings-chips zo aan te sluiten (bijv. de 4094).
Verwijderd schreef op 12 november 2002 @ 23:16:
Inprincipe *ZOU* het kunnen, maar het werkt een stuk praktisher/makkelijker/sneller als je er gewoon de normale win32 api (of als er een managed class voor is die) te gebruken.
Welke normale win32 api bedoel je precies? Ik ken er geen die de afzonderlijke pins hoog en laag kan maken.

Verwijderd

Verwijderd schreef op 12 november 2002 @ 23:40:
[...]
Welke normale win32 api bedoel je precies? Ik ken er geen die de afzonderlijke pins hoog en laag kan maken.
Dat wil je doorgaans ook niet als je met seriele communicatie bezig bent lijkt me? voor dingen als knopjes op die port ect is het wellicht nodig? maar in het gros van de gevallen kom je gewoon weg met 'n CreateFile

Verwijderd

Topicstarter
Als je nou 8 LED's en 4 motoren wil aansluiten op de COM poort, hoe doe je het dan met een createfile?

ofwel: zijn er chips met RS232 interface met 16 outputs (of 8 outputs en cascadeerbaar)?
Pagina: 1