La cosa es asi, tengo este codigo:
Código:
#include <stdio.h>
#include <stdlib.h>
#include <sys/io.h>
#define puerto 0x378
int main ()
{
int resul;
int estado=-1;
int infinito=0;
FILE *texto;
texto = fopen ("Cocina.txt","r");
fscanf (texto, "%d",&resul);
fclose (texto);
while (infinito == 0)
{
switch (resul)
{
case 0:
texto = fopen ("Cocina.txt","r");
fscanf (texto, "%d",&resul);
fclose (texto);
if (estado != 0)
{
unsigned int p; // en esta variable le decimos, en hexa, cuantos cuantos leds prenderan
//apertura del puerto
if(ioperm(puerto,1,1))
{
perror("Se ha encontrado el siguiente error: "); //manejo de errores
exit(1); //salida con error
}
p = 0x00; //puerto 0. Apaga todos los bits
outb(p,puerto);
}
estado=0;
break;
case 1:
texto = fopen ("Cocina.txt","r");
fscanf (texto, "%d",&resul);
fclose (texto);
if (estado != 1)
{
unsigned int p; // en esta variable le decimos, en hexa, cuantos cuantos leds prenderan
//apertura del puerto
if(ioperm(puerto,1,1))
{
perror("Se ha encontrado el siguiente error: "); //manejo de errores
exit(1); //salida con error
}
p = 0x01; //puerto 1
outb(p,puerto); //envia el valor en binario al puerto
}
estado=1;
break;
}
}
}
Para esto funciona, pero cual es el problema?, La cosa es que va a haber mas de un TXT, y tiene que controlar cada pin de forma independiente, ej: Si esta la cocina encendida, y quiero encender la habitacion, o que esten las 2 encendidas y quiero apagar una.
Buscando en internet, encontre este otro codigo:
Código:
#include<stdio.h>
#include<stdlib.h>
#include<sys/io.h> //esta librerÃa permite el manejo de puertos en linux con lenguaje C
#define puerto 0x378 //definimos el puerto a utilizar
int main (void)
{
int seleccion,seleccion_sal,salida[8],valor_sal=0,i,k;
for(i=0;i<=8;i++)
salida[i]=0;
i=0;
while(seleccion!=4)
{
printf("nSeleccione la opcion deseada:nt1- Activar salidant2- Desactivar salidant3- Estado de salidasnt4- Salirn Seleccion: ");
scanf("%d",&seleccion);
printf("Usted selecciono la opcion %i n",seleccion);
switch(seleccion)
{
case 1:
valor_sal=0;
printf("Seleccione la salida a Activar (0 para cancelar): ");
scanf("%d",&seleccion_sal);
if(seleccion_sal==0)
break;
if(seleccion_sal<0 || seleccion_sal>8)
{
printf("tLa salida seleccionada no existe");
break;
}
salida[seleccion_sal-1]=1;
i=1;
for(k=0;k<8;k++)
{
printf("t %d",i);
if (salida[k]==1)
valor_sal = valor_sal + i;
i=i*2;
}
ioperm(0x0378,1,1);
outb(valor_sal,0x0378);
printf("nEl valor de Salida es: %i",valor_sal);
break;
case 2:
valor_sal=0;
printf("Seleccione la salida a Desactivar:");
scanf("%d",&seleccion_sal);
if(seleccion_sal<1 || seleccion_sal>8)
{
printf("tLa salida seleccionada no existe");
break;
}
salida[seleccion_sal-1]=0;
i=1;
for(k=0;k<8;k++)
{
printf("t %d",i);
if (salida[k]==1)
valor_sal = valor_sal + i;
i=i*2;
}
ioperm(0x0378,1,1);
outb(valor_sal,0x0378);
printf("nEl valor de Salida es: %i",valor_sal);
break;
case 3:
printf("n%d",valor_sal);
for(i=0;i<8;i++)
{
printf("nEstado de salida %i: ",(i+1));
if (salida[i]==1)
printf("Activada");
if (salida[i]==0)
printf("Desactivada");
}
printf("n");
break;
case 4:
break;
default:
printf("Seleccion Invalidan");
break;
}
}
exit(0);
}
Talves es algo basico, pero no tengo nada de experiencia en programacion, de verdad que necesito una ayuda.
Desde ya Gracias!!