C/Visual C - desde ya gracias

 
Vista:

desde ya gracias

Publicado por teme (1 intervención) el 04/04/2002 01:59:24
tengo una duda con el uso de inport() de C.
la idea es generar un programa que me permita manipular las salidas D0 a D7 el puerto pero identificarlas si estan activas con inport()...
este es parte del programa...

#include <dos.h>
#define pto 0x378

void main(void)
{
char opc;
clrscr();
do
{
printf("activar alumbrado? <S/N> ");
scanf("%c",&opc);
if(opc=='S' || opc=='s' && inport( //apagado ))
//no se detectar si esta inactivo 0x01
{
outport(pto,0x01);
printf("se activo la salida D0");
//asume que estaba inactivo
}
elseif(opc=='S' || opc=='s' && inport( //prendido)) {
printf("salida activa ¿desactivar s/n? ");
//la encontro activa y asume que deseo desactivarla
}

}
}

algo asi..si alguien sabe como púedo utilizar la funcion input() para que me detecte si esta activa la salida ...una mano no? plis
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:desde ya gracias

Publicado por Carlos Sanz (4 intervenciones) el 04/04/2002 07:26:19
Hola.
veamos si esto t da alguna pista o idea

la funcion inport(puerto) retorna un entero.
Es probable que el encendido o el apagado, lo indique un bit o un par de bits, de ese entero devuelto.
Lo q debes hacer es enterarte si es así y averiguar que bits son.
y luego para acceder a los bits de un entero. Lo haces por pesos.

Imaginemos q el bit 3 es el q indica si esta encendio o apagado, ok?
1 = Encendido. 0 = Apagado.

int Dato = inport( 0x378 );

if(Dato & 4) // 1, 2, 4, 8, 16, 32, 64, 128, 256, 512.... Según el bit q quieras.
printf("Esta encendido");
else
printf("Esta apagado");

Es lo unico que se me ha ocurrido. Igual t sirve.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar