hallo
der asm befehl (asembler) ist der "treiber" damit der kompiler weiß was der outp befehl soll
bekommst du eine fehler meldung?
Code:
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <time.h>
#include <dos.h>
#define LPT 0x378
//==============================================
void outp (unsigned int portadr, unsigned char value)
{
_asm mov edx,portadr
_asm mov al, value
_asm out dx,al
}
//==============================================
int main(int i)
{
for(i=1;i<=10;i++)
{
outp(0x378,256);
printf("D0..D7=1\n");
wait(10);
outp(0x378,256);
printf("D0...D7=0\n");
wait(10);
}
}
wait(int sekunden)
{
clock_t start;
sekunden *= CLOCKS_PER_SEC;
start = clock();
while(clock()<start+sekunden);
}
du must ihn oben definieren mit #define LPT 0x378
den die lptschnittstele hat 3 register das statusregister, das steuerregister und die datenleitung. mit #define LPT 0x378 sagst du in das er die schnittstelle 0x378 benutzen soll, wenn du noch andere hast gibst noch andere andressen.
im outp befehl sagst du ihn dann welches register er benutzen soll
outp(0x378,0);
outp(0x379,0);
outp(0x37a,0);
hier werden alle 3 auf null gesetzt
pass aber auf dein motherbord auf, wenn du da was anschließt
Lesezeichen