Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
#include <sys/io.h> #include <stdio.h> #include <unistd.h> #define DEMORA 1000000 #define PUERTO 0x378 int main () { unsigned char dato; // Pido el permiso if ((ioperm(PUERTO, 3, 1)) !=0 ) { printf ("Error de permisos"); return -1; } while (1) { // pin 5 dato = inb ( PUERTO ); // Entra el dato del puerto dato = dato | 0x08; // Le aplico la mascara para poner en 1 el bit 3 (prendo la luz) outb (dato, PUERTO); // LE digo al led que se prenda usleep(DEMORA); // usleep es la funcion que le paso el parametro de microsegundos que quiero que la maquina espere dato = dato & (~0x08); outb(dato, PUERTO); usleep(5000); // pin 3 dato = inb ( PUERTO ); // Entra el dato del puerto dato = dato | 0x02; // Le aplico la mascara para poner en 1 el bit 3 (prendo la luz) outb (dato, PUERTO); // LE digo al led que se prenda usleep(DEMORA); dato = dato & (~0x02); outb(dato, PUERTO); usleep(5000); // pin 2 dato = inb ( PUERTO ); // Entra el dato del puerto dato = dato | 0x01; // Le aplico la mascara para poner en 1 el bit 3 (prendo la luz) outb (dato, PUERTO); // LE digo al led que se prenda usleep(DEMORA); dato = dato & (~0x01); outb(dato, PUERTO); usleep(5000); } return 0; }
Compartir