|
Side 3 av 4
Det lille c programmet som liver opp lysene er dette:
/* Program for å lyse opp LEDs i en liten krets Jens Christoffersen 2009 */
// includes #include #include #include #include #include
// definitions #define base 0x3bc // parallel port address #define sleeping 1000000 // time for led to light
main(int argc, char **argv) { if (ioperm(base,1,1)) // open the parallel port fprintf(stderr, "Couldn't get the port at %x\n", base), exit(1); // error mesg if not open
outb(0, base); // set all pins to 0 = low
outb(1, base); // outb = write, 1 = send 1/high to pin 2, base = par port add 3bc printf ("Pin 2 set to high.\n"); // mesg to screen usleep(sleeping); // wait for 1 sec outb(2, base); printf ("Pin 3 set to high.\n"); usleep(sleeping);
outb(4, base); printf ("Pin 4 set to high.\n"); usleep(sleeping);
outb(8, base); printf ("Pin 5 set to high.\n"); usleep(sleeping);
outb(16, base); printf ("Pin 6 set to high.\n"); usleep(sleeping);
outb(32, base); printf ("Pin 7 set to high.\n"); usleep(sleeping);
outb(64, base); printf ("Pin 8 set to high.\n"); usleep(sleeping);
outb(0, base); // set all pins to 0 = low return 0; }
Siden jeg bare hadde en kat 5 kabel tilgjenelig, har jeg utelatt den siste pinnen. Koden for den ville være:
outb(128, base);
printf(Pin 9 set to high.\n");
usleep(sleeping);
Dette programmet har jeg kompilert med kommandoen:
gcc -O light-led.c -o light-led
(Jeg har en Ubuntu 9.04 installasjon med build-essentials pakken installert)
|