Alguin me puede ayudar con este error
Publicado por Tito (2 intervenciones) el 07/06/2009 02:46:19
Hola a todos
Cuando trato de copilar me sale este error , alguien sabe como arreglarlo
error C2443: operand size conflict
Este es el programa
#include <dos.h>
/* Definición de Prototipos */
void escribir_puerto (int);
char leer_puerto (void);
void semaforo1 (void);
void config(void);
void delay (int);
main ()
{
/* Se inicia el circuito */
config();
/* Se ejecuta la función normal del semáforo */
/* hasta que se oprime el botón */
do
{
semaforo1();
}
while ((int)leer_puerto()==-1);
/* Se apaga el semáforo y se restablece la */
/* señal de control del botón */
config();
return(0);
}
void semaforo1 (void)
{
/* Luz Roja */
escribir_puerto(1);
delay(5000);
/* Luz Verde */
escribir_puerto(4);
delay(5000);
/* Luz amarilla */
escribir_puerto(2);
delay(1500);
/* Flecha */
escribir_puerto(9);
delay(2000);
}
void config(void)
{
escribir_puerto(0);
escribir_puerto(128);
escribir_puerto(0);
}
void escribir_puerto(int val)
{
_asm{
mov dx,0x02FF
in ax,dx
and ax,0xDE
out dx,ax //inicia puerto de escritura
mov dx,0x02F8
mov ax,val
out dx,ax
}
}
char leer_puerto(void)
{
char dato;
_asm{
mov dx,0x02FF
in al,dx
or al,0x21
out dx,al // inicia puerto de lectura
mov dx,0x02F8
in al,dx
mov dato,al
}
return(dato);
}
Cuando trato de copilar me sale este error , alguien sabe como arreglarlo
error C2443: operand size conflict
Este es el programa
#include <dos.h>
/* Definición de Prototipos */
void escribir_puerto (int);
char leer_puerto (void);
void semaforo1 (void);
void config(void);
void delay (int);
main ()
{
/* Se inicia el circuito */
config();
/* Se ejecuta la función normal del semáforo */
/* hasta que se oprime el botón */
do
{
semaforo1();
}
while ((int)leer_puerto()==-1);
/* Se apaga el semáforo y se restablece la */
/* señal de control del botón */
config();
return(0);
}
void semaforo1 (void)
{
/* Luz Roja */
escribir_puerto(1);
delay(5000);
/* Luz Verde */
escribir_puerto(4);
delay(5000);
/* Luz amarilla */
escribir_puerto(2);
delay(1500);
/* Flecha */
escribir_puerto(9);
delay(2000);
}
void config(void)
{
escribir_puerto(0);
escribir_puerto(128);
escribir_puerto(0);
}
void escribir_puerto(int val)
{
_asm{
mov dx,0x02FF
in ax,dx
and ax,0xDE
out dx,ax //inicia puerto de escritura
mov dx,0x02F8
mov ax,val
out dx,ax
}
}
char leer_puerto(void)
{
char dato;
_asm{
mov dx,0x02FF
in al,dx
or al,0x21
out dx,al // inicia puerto de lectura
mov dx,0x02F8
in al,dx
mov dato,al
}
return(dato);
}
Valora esta pregunta


0