Bueno encontre este codigo en internet de c++ para cambiar el sentido de giro de un motor de corriente continua, era para turbo c pero no corria el programa, lo modifique un poco, el programa sirve pero no manda pulsos al puerto paralelo, en las direcciones de datos, estado y control he puesto:
LPT_BASE, LPT_BASE+1 y LPT_BASE+2 (he definido LPT_BASE como 0x378)
LPT_1, LPT_1+1 y LPT_1+2
0x378, 0x379 y 0x37A
pero con ninguna manda los pulsos a D0-7
Ayuda porfavor
¿Alguien sabe las direcciones o me diria que esta mal en el programa?
LPT_BASE, LPT_BASE+1 y LPT_BASE+2 (he definido LPT_BASE como 0x378)
LPT_1, LPT_1+1 y LPT_1+2
0x378, 0x379 y 0x37A
pero con ninguna manda los pulsos a D0-7
Código:
/*Control de un MOTOR de C.C. mediante puerto paralelo
+ -
D0 --- (etapa) --- M --- (etapa) --- D1*/
#include <stdio.h>
#include <dos.h>
#include <conio.h> //Para Borland
#include <conio2.h>//Para Visual y Dev
/* Direcciones del puerto paralelo */
#define DATOS 0x378.h
#define ESTADO 0x379.h
#define CONTROL 0x37A.h
/* Valores que activan el giro y la parada del motor */
#define APAGA_MOTOR 0x03 /* D0=1 (pin2), D1=1 (pin 3) */
#define GIRO_HORARIO 0x02 /* D0=0 (pin2), D1=1 (pin 3) */
#define GIRO_ANTIHORARIO 0x01 /* D0=1 (pin2), D1=0 (pin 3) */
/* Macro que envía un valor al puerto de DATOS */
#define Activa(valor)
#define outportb(DATOS,valor)
main ()
{
unsigned tecla, pos_x, pos_y;
Activa(APAGA_MOTOR);
textcolor(LIGHTRED);
printf("Erick Santiago Gomez\n");
printf("Tecnico en Mecatronica\n\n");
textcolor(LIGHTCYAN);
printf("Control de un motor c.c.:\n");
printf("\t + = girar en sentido horario\n");
printf("\t - = girar en sentido antihorario\n");
printf("\t d = detener motor\n");
printf("\t s = salir\n\n");
pos_x = wherex();
pos_y = wherey();
tecla = 0;
do {
if ( kbhit() ) tecla = getch();
gotoxy(pos_x,pos_y);
switch (tecla) {
case '+':
textcolor(YELLOW);
printf("\t ... motor girando hacia la derecha ... ");
Activa(GIRO_HORARIO);
break;
case '-':
textcolor(YELLOW);
printf("\t ... motor girando hacia la izquierda ...");
Activa(GIRO_ANTIHORARIO);
break;
case 'd':
textcolor(YELLOW);
printf("\t ... motor detenido... ");
Activa(APAGA_MOTOR);
break;
}
}
while (tecla != 's');
printf("\n");
Activa(APAGA_MOTOR);
return 0;
}
Ayuda porfavor