Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>
Dependencies: EthernetNetIf HTTPServer QEI_hw RPCInterface mbed
Revision 27:b8254b76ec57, committed 2014-02-03
- Comitter:
- Yo_Robot
- Date:
- Mon Feb 03 22:37:57 2014 +0000
- Parent:
- 26:dad0b2031173
- Child:
- 28:b7ded82ee7da
- Commit message:
- Se aumento parametros P para miles de pulsos y M para millones de pulsos
Changed in this revision
setup.cpp | Show annotated file Show diff for this revision Revisions of this file |
--- a/setup.cpp Sun Dec 29 21:47:15 2013 +0000 +++ b/setup.cpp Mon Feb 03 22:37:57 2014 +0000 @@ -91,28 +91,16 @@ case 'R': // Leer la velocidad en RPMs del encoder { - int ang = 0; - float rpm; - clear_encoder(); // Encerar encoder - crono.reset(); // Encerar el cronometro; - - while( ang == 0 ) // Esperar hasta q exista lectura del encoder - ang = read_encoder(); // Leer nueva posicion - - crono.stop(); // detener cronometro - rpm = ( ang * 500 ) / (crono.read_ms() * 3 ); - - // grados 1000 ms 60 s 1 Rev 500 Rev - // ------ * -------- * ------ * ---------- = -------- - // ms 1s 1min 360 grad 3 Min + //Leer la posición del encoder if( isPC ) - pc.printf("%f", rpm); + pc.printf("encoder\n\r"); else - RS_232.printf("%f", rpm); + RS_232.printf("encoder\n\r"); break; } + case 'H': // Establecer nueva frecuencia { setPTO( value ); @@ -123,9 +111,9 @@ pc.printf("OK\r\n"); else RS_232.printf("OK\r\n"); - break; } + case 'K': { setPTO( value * 1000 ); @@ -182,12 +170,16 @@ break; } - // Generar un numero definido de pulsos a la velocidad de posicionamiento + + // Generar un numero definido de pulsos a la velocidad de posicionamiento case 'G': { int pulsos = value; //Numero de pulsos a generar t_alto = pulsos / fq_posicion; //Tiempo que debe ser generado el tren de pulsos. - + + //DEBUG + pc.printf("Tiempo en timer en seg = %f", t_alto); + stopTimer2(); //Deten el tren de pulsos setPTO( fq_posicion ); //Nueva frecuencia de salida startTimer2(); //Inicia el tren de pulsos @@ -204,6 +196,60 @@ break; } + + // Generar un numero definido de MILES de pulsos a la velocidad de posicionamiento + case 'P': + { + int pulsos = value * 1000; //Numero de pulsos a generar + t_alto = pulsos / fq_posicion; //Tiempo que debe ser generado el tren de pulsos. + + //DEBUG + pc.printf("Tiempo en timer en seg = %f", t_alto); + + stopTimer2(); //Deten el tren de pulsos + setPTO( fq_posicion ); //Nueva frecuencia de salida + startTimer2(); //Inicia el tren de pulsos + wait( t_alto ); //Espera hasta llegar a la posicion + stopTimer2(); //Posicion alcanzada ALTO. + + + // Envia un OK de comando recibido + if( isPC ) + pc.printf("OK\r\n"); + else + RS_232.printf("OK\r\n"); + + + break; + } + + // Generar un numero definido de MILLONES pulsos a la velocidad de posicionamiento + case 'M': + { + int pulsos = value * 1000000; //Numero de pulsos a generar + t_alto = pulsos / fq_posicion; //Tiempo que debe ser generado el tren de pulsos. + + //DEBUG + pc.printf("Tiempo en timer en seg = %f", t_alto); + + stopTimer2(); //Deten el tren de pulsos + setPTO( fq_posicion ); //Nueva frecuencia de salida + startTimer2(); //Inicia el tren de pulsos + wait( t_alto ); //Espera hasta llegar a la posicion + stopTimer2(); //Posicion alcanzada ALTO. + + + // Envia un OK de comando recibido + if( isPC ) + pc.printf("OK\r\n"); + else + RS_232.printf("OK\r\n"); + + + break; + } + + case 'E': //Leer posicion angular relativa del encoder { if( isPC )