| 
	
		|  Autor | Tema: duda con programa para control de motores  (Leído 4,093 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
 : Saluditosif (*x==1)    res=*x+*y-1;else     res=*x+*y; 
 !. .....  |  
						| 
								|  |  
								|  |  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 alegriaA 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,656 |  22 Mayo 2005, 18:03 pm por leodan
 |  
						|   |   | Duda sobre control para gears of war Juegos y Consolas
 | JERRY110982 | 9 | 3,246 |  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 | 2,022 |  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 | 9,247 |  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,385 |  29 Febrero 2016, 21:35 pm por RevolucionVegana
 |    |