RezaMedlem sedan feb. 2001107 inlägg Jag skulle vilja tända och släcka en lysdiod från parallellporten i min PC.
Lysdioden är kopplat till pin 2 (DATA 0) och pin 18 (Grnd).
Jag har provat med _outp(0x0378, 0x01); men det fungerar tydligen inte under NT, 2000 eller XP.
Hur ska jag lösa problemet???
Tacksam för Kod exempel.
Ett vanligt program i usermode kommer som du märkt inte åt hårdvaran i ett NT-baserat system. Man får skriva en drivrutin som exekverar i kernelmode, och låta sitt program kommunicera via denna. Se exempelvis: http://www.beyondlogic.org/porttalk/porttalk.htm
nikoMedlem sedan juni 20022 599 inlägg En annan (liknande) lösning är att installera den generella kerneldrivern giveio.sys.
En process får total hårdvaruaccess även i NT/2000/XP enkelt genom enbart följande kod:
h = CreateFile("\\\\.\\giveio", GENERIC_READ, 0, NULL,
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(h == INVALID_HANDLE_VALUE) {
printf("Couldn't access giveio device\n");
return -1;
}
CloseHandle(h);
Efter det fungerar anrop som _outp precis som på 9x. För att installera drivern krävs instdrv.exe från DDK:en (finns även att ladda ner lite varstans).
fluffMedlem sedan juli 200268 inlägg hej!
jag undrar om du har någon länk (gärna svensk?) med hur man kopplar in enklare saker via paralellporten och sen "styr" dom, t.ex får en buzzer att tjuta, en diod att lysa osv.. eller att man känner av vilket läge en switch står i..
vore uppskattat! ;)
#L#Medlem sedan juli 20021 363 inlägg reza.. gå in på http://forum.sweclockers.com/ där finns det mängder med sånt här göjs
fluffMedlem sedan juli 200268 inlägg jag sökte på "diod" och lite annat gott på programmeringsforumet, hittade ingenting! :q