Autor
|
Tema: duda con programa para control de motores (Leído 3,617 veces)
|
electro-pajo
Desconectado
Mensajes: 5
|
Me presento: Es la 1º vez que participo en un foro, queria subir un pequeño programa para el control de un motor pero no se como se hace. Como se hace? Gracias.
|
|
|
En línea
|
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
Cuando dices motor creo que puedes estar refiriendote a motores electricos gobernado por algun pic, en ese caso lo suyo seria que postearas en el apartado de electronica: http://foro.elhacker.net/electronica-b31.0/Y para postear tu codigo puedes copiarlo simplemente con el raton y lo pegas en un post del foro.
|
|
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
............................queria subir un pequeño programa para el control de un motor pero no se como se hace. Como se hace? Gracias.
Sencillamente donde pone GeSHi seleccionas C++ y aparecerán dos etiquetas" Code", en medio de ambas "pegas" tu código. Por cierto si está en C++ este foro es perfectamente válido para colgarlo, es un foro de "códigos", no en electrónica que es o debe ser para temas específicos.
Saluditos!, y bienvenido. ....
|
|
|
En línea
|
|
|
|
electro-pajo
Desconectado
Mensajes: 5
|
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; } }
|
|
|
En línea
|
|
|
|
pacoperico
Desconectado
Mensajes: 100
|
En la definicion de tu funcion motor() veo lo siguiente: El operador && es el operador logico "and" el cual solo devuelve verdadero (generalmente 1) si ambas expresiones son verdaderas *x e *y, y falso (0) en los demas casos. En el lenguaje C desde sus comienzos no existe el tipo bool, en su defecto se consideraba cualquier valor numerico distinto de cero como verdadero y el valor numerico cero como falso. En la mayoria de compiladores verdadero suele corresponder con el valor 1. Para que me entiendas un poco mejor, un if por ejemplo if(condicion) enunciado; Evalua la condicion comprobando su valor numerico, si la condicion vale 1 entonces ejecuta el enunciado y si no vale 1 no ejecuta el enunciado. En tu codigo A la variable res le estas asignando el valor 1 en el caso de que *x e *y tengan el mismo valor, y el valor 0 en caso contrario. Cuando despues haces 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; La variable res solo podra ejecutar el case 1: ya que solo podra tener el valor 1 o el valor 0.
|
|
|
En línea
|
|
|
|
electro-pajo
Desconectado
Mensajes: 5
|
muchas gracias por tu respuesta. Como ves para mi C es tan natural como el arabe. No se como hacer que con los parametros pasados a esta funcion se puedan elegir 4 opciones. La primera seria: si x=1 e y=1 elige la secuencia a; si x=1 e y=2 elige la secuencia b...etc
EI: juntando mensajes.
Si quito el doble & cambia algo?
|
|
« Última modificación: 2 Marzo 2013, 23:01 pm por Eternal Idol 7D »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Si quito el doble & cambia algo?
Todo.
Como bien dices, x e y pueden valer 1,1 1,2 2,1 2,2.
Entonces : if (*x==1) res=*x+*y-1; else res=*x+*y;
Saluditos!. .....
|
|
|
En línea
|
|
|
|
electro-pajo
Desconectado
Mensajes: 5
|
y de esta forma seguiria funcionando la sentencia switch? Si es asi me das una gran alegria
EI: juntando mensajes.
No hace falta nada que relacione las variables 1,1 1,2 etc con las cadenas a,b,etc. He hecho las practicas de interrogatorio en guantanamo, se nota?
|
|
« Última modificación: 2 Marzo 2013, 23:02 pm por Eternal Idol 7D »
|
En línea
|
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
y de esta forma seguiria funcionando la sentencia switch? Si es asi me das una gran alegria
A qué estan referidas las variables a,b,c,d?.La elección del switch sería correcta con el "res" que te indico. Saluditos!. ...
|
|
« Última modificación: 2 Marzo 2013, 22:40 pm por leosansan »
|
En línea
|
|
|
|
electro-pajo
Desconectado
Mensajes: 5
|
Muchas gracias por vuestra ayuda señores.
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
programa con motores a paso
Programación Visual Basic
|
leodan
|
2
|
2,432
|
22 Mayo 2005, 18:03 pm
por leodan
|
|
|
Duda sobre control para gears of war
Juegos y Consolas
|
JERRY110982
|
9
|
2,879
|
14 Abril 2008, 04:30 am
por JERRY110982
|
|
|
Rolls Royce usará la impresión 3D para fabricar piezas de motores de avión
Noticias
|
wolfbcn
|
0
|
1,589
|
15 Noviembre 2013, 22:59 pm
por wolfbcn
|
|
|
Por qué no una sección para motores gráficos?
« 1 2 »
Sugerencias y dudas sobre el Foro
|
z3nth10n
|
13
|
8,232
|
19 Diciembre 2013, 01:33 am
por topomanuel
|
|
|
Duda con mi web y la indexacion en motores de búsqueda
Desarrollo Web
|
RevolucionVegana
|
2
|
2,080
|
29 Febrero 2016, 21:35 pm
por RevolucionVegana
|
|