21. juli 1999 - 22:30Der er
5 kommentarer og 1 løsning
Adgang til parallel-porten fra f.eks. C++ Builder
Hvordan får jeg adgang til direkte at styre parallel-portens data-register ? Jeg har behov for både at sætte og læse signaler. (Peek og Poke, samt outp/inp kender jeg allerede - men er det den rette løsning.)
Inp og Outp findes ikke i C++ Builder, fordi man under Windows 95 kun kan få eksklusiv adgang til porten via en driver (VxD) - som i sig selv er en hel videnskab at skrive.
Mit behov drejer sig om at styre noget elektronik via parallel-porten, og der vil derfor givetvis ikke være andre programmer, der forsøger at komme til porten mens jeg bruger den. Jeg har derfor lavet følgende løsning:
int inp(int portAddr) { unsigned char portData; asm cli mov dx, portAddr in dx, al mov portData, al sti end; return portData; } int outp(int portAddr, unsigned char portData) { asm cli mov dx, portAddr mov al, portData out dx,al sti end; return inp(portAddr); }
Ved at forbinde f.eks. ben 3 (data bit 2) og ben 20 (signal ground), kan jeg få en lysdiode til at lyse ved at lave 'outp(0x378, 0xFF)' og slukke den igen vha. 'outp(0x378,0x00)' - og det virker fint til mit formål.
Tak til alle der forsøgte at finde et svar til mig.
Jo da, gerne. Jeg antog blot at 0x378 var data-bits, 0x379 input bits til f.eks. !PE, !SELECT osv. Hvis du har en direkte mapping, vil jeg meget gerne have den.
Jeg har Det til at stå i en bog et sted !!! Jeg kan sende det til dig via E-Mail, skal lige finde det !! Ved hvilken bog det står i !!
Synes godt om
Slettet bruger
09. maj 2000 - 17:45#6
kan du ikke sende det til mig??
michael.christiansen@skolekom.dk
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.