Muchas gracias por la bienvenida. Mi duda es con respecto a la programacion no a la electronica, efectivamente. Estoy muy verde en C y no se si en este programa la funcion "motor" hace algo que no sea del infierno... #include <conio.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <dos.h> unsigned short inport (unsigned int puerto) { _DX=puerto; __emit__(0x66,0xED); return _AX; } void outport (unsigned int puerto, unsigned short dato) { _DX=puerto; _AX=dato; __emit__(0x66,0xEF); }
void motor(int *, int *);
void main(void) { int numero; int sentido;
printf("****************************************************\n"); printf("* CONTROL MOTORES PaP *\n"); printf("****************************************************\n"); do{ do{ printf("¿Desea mover 1 o 2 motores?\n"); fflush(stdout); scanf("%d", &numero); }while(numero!=1 && numero!=2); do{ printf("¿Que sentido de giro desea? (1)=horario (2)=antihorario\n"); fflush(stdout); scanf("%d", &sentido); }while(sentido!=1 && sentido!=2); motor(&numero,&sentido); }while(true); }
void motor(int *x, int *y) { int res; int i;
res=*x&&*y; char a[]={0x06,0x05,0x09,0x0A}; //1 motor sentido horario char b[]={0x66,0x99,0x55,0x66}; //2 motores sentido horario char c[]={0x0A,0x09,0x05,0x06}; //1 motor sentido antihorario char d[]={0xAA,0x99,0x55,0x66}; //2 motores sentido antihorario switch(res) { case 1: for(i=0; !kbhit(); i++) outport(0x378, a); break; case 2: for(i=0; !kbhit(); i++) outport(0x378, b); break; case 3: for(i=0; !kbhit(); i++) outport(0x378, c); break; case 4: for(i=0; !kbhit(); i++) outport(0x378, d); break; } }
|