Proyecto de Tesis en Mecatrónica. Universidad Técnica del Norte. Ernesto Palacios <mecatronica.mid@gmail.com>

Dependencies:   EthernetNetIf HTTPServer QEI_hw RPCInterface mbed

Committer:
Yo_Robot
Date:
Thu Jul 17 17:12:41 2014 +0000
Revision:
37:20f4a737cc13
Parent:
34:bdf918bc9b59
Programa final para el deslizador lineal UTN. version 2.0  - documentaci?n escibir a mecatronica.mid@gmail.com

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Yo_Robot 20:4b154134ab20 1 /**
Yo_Robot 20:4b154134ab20 2 * @file setup.h
Yo_Robot 20:4b154134ab20 3 * @author Ernesto Palacios
Yo_Robot 20:4b154134ab20 4 * @brief decalracion de funciones
Yo_Robot 20:4b154134ab20 5 *
Yo_Robot 20:4b154134ab20 6 * Created on 25 de Marzo de 2012
Yo_Robot 20:4b154134ab20 7 *
Yo_Robot 20:4b154134ab20 8 * Licencia GPL v3.0
Yo_Robot 20:4b154134ab20 9 * http://www.gnu.org/licenses/gpl-3.0.html
Yo_Robot 20:4b154134ab20 10 */
Yo_Robot 20:4b154134ab20 11
Yo_Robot 2:a1b556d78a7f 12
Yo_Robot 2:a1b556d78a7f 13 #ifndef SETUP_H
Yo_Robot 2:a1b556d78a7f 14 #define SETUP_H
Yo_Robot 2:a1b556d78a7f 15
Yo_Robot 2:a1b556d78a7f 16 #include "mbed.h"
Yo_Robot 18:cf1e07d82630 17 #include "EthernetNetIf.h"
Yo_Robot 30:413d1a6648b5 18 #include "HTTPServer.h"
Yo_Robot 30:413d1a6648b5 19 #include "RPCFunction.h"
Yo_Robot 30:413d1a6648b5 20 #include "RPCVariable.h"
Yo_Robot 18:cf1e07d82630 21
Yo_Robot 4:552beeda4722 22 /** @brief: Esta funcion configura al Timer2
Yo_Robot 4:552beeda4722 23 * para que las salidas p5 y p6 del mbed
Yo_Robot 4:552beeda4722 24 * se alternen cada vez que se iguala al
Yo_Robot 4:552beeda4722 25 * registro MR2 y MR3.
Yo_Robot 4:552beeda4722 26 */
Yo_Robot 4:552beeda4722 27 void setTimer2();
Yo_Robot 4:552beeda4722 28
Yo_Robot 4:552beeda4722 29
Yo_Robot 30:413d1a6648b5 30 /** @brief: Esta es la rutina que cambia la frecuencia
Yo_Robot 30:413d1a6648b5 31 * de salida del Micro en Serial
Yo_Robot 30:413d1a6648b5 32 */
Yo_Robot 30:413d1a6648b5 33 void setPTO( int freq );
Yo_Robot 30:413d1a6648b5 34
Yo_Robot 30:413d1a6648b5 35
Yo_Robot 20:4b154134ab20 36 /** @brief: Esta es la rutina para obtener la onfiguracion
Yo_Robot 20:4b154134ab20 37 * de la velocidad serial para el puerto MAX_232
Yo_Robot 20:4b154134ab20 38 */
Yo_Robot 21:353b0fe8fc54 39 int configurarBaudios();
Yo_Robot 20:4b154134ab20 40
Yo_Robot 20:4b154134ab20 41
Yo_Robot 4:552beeda4722 42 /** @brief: Esta es la rutina que maneja las interrupciones
Yo_Robot 4:552beeda4722 43 * seriales, al recibir un caracter.
Yo_Robot 4:552beeda4722 44 */
Yo_Robot 2:a1b556d78a7f 45 void ISR_Serial();
Yo_Robot 2:a1b556d78a7f 46
Yo_Robot 4:552beeda4722 47
Yo_Robot 30:413d1a6648b5 48 /** @brief: Esta es la rutina que maneja las interrupciones
Yo_Robot 30:413d1a6648b5 49 * seriales, al recibir un caracter.
Yo_Robot 30:413d1a6648b5 50 */
Yo_Robot 30:413d1a6648b5 51 void ISR_Alm_encoder();
Yo_Robot 30:413d1a6648b5 52
Yo_Robot 30:413d1a6648b5 53
Yo_Robot 30:413d1a6648b5 54 /** @brief: Esta es la rutina que maneja las interrupciones
Yo_Robot 30:413d1a6648b5 55 * seriales, al recibir un caracter.
Yo_Robot 4:552beeda4722 56 */
Yo_Robot 30:413d1a6648b5 57 void ISR_Alm_motor();
Yo_Robot 30:413d1a6648b5 58
Yo_Robot 30:413d1a6648b5 59
Yo_Robot 30:413d1a6648b5 60 /** @brief: Esta es la rutina que maneja las interrupciones
Yo_Robot 30:413d1a6648b5 61 * seriales, al recibir un caracter.
Yo_Robot 30:413d1a6648b5 62 */
Yo_Robot 30:413d1a6648b5 63 void ISR_Adv_encoder();
Yo_Robot 30:413d1a6648b5 64
Yo_Robot 30:413d1a6648b5 65
Yo_Robot 30:413d1a6648b5 66 /** @brief: Esta es la rutina que maneja las interrupciones
Yo_Robot 30:413d1a6648b5 67 * seriales, al recibir un caracter.
Yo_Robot 30:413d1a6648b5 68 */
Yo_Robot 30:413d1a6648b5 69 void ISR_Adv_motor();
Yo_Robot 4:552beeda4722 70
Yo_Robot 4:552beeda4722 71
Yo_Robot 12:c02b08dacc45 72 /** @brief: Esta es la rutina que maneja la interrupcion
Yo_Robot 30:413d1a6648b5 73 * de alarma del servomotor
Yo_Robot 4:552beeda4722 74 */
Yo_Robot 12:c02b08dacc45 75 void ISR_Alarm();
Yo_Robot 2:a1b556d78a7f 76
Yo_Robot 4:552beeda4722 77
Yo_Robot 30:413d1a6648b5 78
Yo_Robot 4:552beeda4722 79 /** @brief: Esta Funcion calcula el valor necesario
Yo_Robot 4:552beeda4722 80 * en el MatchRegister para obtener una frecuencia
Yo_Robot 4:552beeda4722 81 * de salida.
Yo_Robot 4:552beeda4722 82 * @param fout Frecuencia de salida deseada
Yo_Robot 4:552beeda4722 83 * @return El valor que debe tener el MatchRegister
Yo_Robot 4:552beeda4722 84 */
Yo_Robot 4:552beeda4722 85 int getMRvalue( int fout );
Yo_Robot 4:552beeda4722 86
Yo_Robot 4:552beeda4722 87
Yo_Robot 21:353b0fe8fc54 88
Yo_Robot 21:353b0fe8fc54 89 /** @brief: Esta es la rutina que maneja la interrupcion
Yo_Robot 21:353b0fe8fc54 90 * de alarma
Yo_Robot 21:353b0fe8fc54 91 */
Yo_Robot 21:353b0fe8fc54 92 int getBaud();
Yo_Robot 21:353b0fe8fc54 93
Yo_Robot 21:353b0fe8fc54 94
Yo_Robot 21:353b0fe8fc54 95
Yo_Robot 12:c02b08dacc45 96 /** @brief: Esta Funcion cambia el valor del Registro 2
Yo_Robot 12:c02b08dacc45 97 */
Yo_Robot 12:c02b08dacc45 98 void setMR2( int newValue );
Yo_Robot 12:c02b08dacc45 99
Yo_Robot 12:c02b08dacc45 100
Yo_Robot 12:c02b08dacc45 101 /** @brief: Esta Funcion arranca el timer
Yo_Robot 12:c02b08dacc45 102 */
Yo_Robot 12:c02b08dacc45 103 void startTimer2();
Yo_Robot 12:c02b08dacc45 104
Yo_Robot 12:c02b08dacc45 105
Yo_Robot 12:c02b08dacc45 106 /** @brief: Esta Funcion detiene el timer
Yo_Robot 12:c02b08dacc45 107 */
Yo_Robot 12:c02b08dacc45 108 void stopTimer2();
Yo_Robot 12:c02b08dacc45 109
Yo_Robot 12:c02b08dacc45 110
Yo_Robot 22:d5431fff164b 111 //________________ FUNCIONES ETHERNET ___________________//
Yo_Robot 22:d5431fff164b 112
Yo_Robot 22:d5431fff164b 113
Yo_Robot 22:d5431fff164b 114 /** @brief: Esta es la rutina que cambia la frecuencia
Yo_Robot 22:d5431fff164b 115 * de salida del Micro en comunicacion Ethernet
Yo_Robot 22:d5431fff164b 116 */
Yo_Robot 22:d5431fff164b 117 void setPTO_eth ( char * input, char * output );
Yo_Robot 22:d5431fff164b 118
Yo_Robot 22:d5431fff164b 119
Yo_Robot 12:c02b08dacc45 120 /** @brief: Esta Funcion cambia el voltaje de salida el
Yo_Robot 12:c02b08dacc45 121 * valor ingresado debe ser en porcentaje.
Yo_Robot 12:c02b08dacc45 122 * Desde -100% hasta +100% dependiendo de la velocidad
Yo_Robot 12:c02b08dacc45 123 * y el sentido de giro
Yo_Robot 12:c02b08dacc45 124 */
Yo_Robot 12:c02b08dacc45 125 void setAout_eth( char * input, char * output );
Yo_Robot 12:c02b08dacc45 126
Yo_Robot 12:c02b08dacc45 127
Yo_Robot 12:c02b08dacc45 128 /** @brief: Cambiar Direccion @ PTO
Yo_Robot 12:c02b08dacc45 129 */
Yo_Robot 12:c02b08dacc45 130 void setDir_eth ( char * input, char * output );
Yo_Robot 12:c02b08dacc45 131
Yo_Robot 12:c02b08dacc45 132
Yo_Robot 22:d5431fff164b 133 /** @brief: Encender el Servo (bloquearlo)
Yo_Robot 22:d5431fff164b 134 */
Yo_Robot 22:d5431fff164b 135 void setSON_eth ( char * input, char * output );
Yo_Robot 22:d5431fff164b 136
Yo_Robot 22:d5431fff164b 137
Yo_Robot 22:d5431fff164b 138 /** @brief: Cambiar el angulo actual del eje del motor
Yo_Robot 22:d5431fff164b 139 */
Yo_Robot 22:d5431fff164b 140 void setANG_eth( char * input, char * output );
Yo_Robot 22:d5431fff164b 141
Yo_Robot 22:d5431fff164b 142
Yo_Robot 22:d5431fff164b 143 /** @brief: Cambiar la velocidad de giro al cambiar el angulo del motor
Yo_Robot 22:d5431fff164b 144 */
Yo_Robot 22:d5431fff164b 145 void setSPD_eth( char * input, char * output );
Yo_Robot 22:d5431fff164b 146
Yo_Robot 22:d5431fff164b 147
Yo_Robot 22:d5431fff164b 148 /** @brief: Leer desde el encoder
Yo_Robot 22:d5431fff164b 149 */
Yo_Robot 22:d5431fff164b 150 void getENC_eth( char * input, char * output );
Yo_Robot 22:d5431fff164b 151
Yo_Robot 22:d5431fff164b 152
Yo_Robot 22:d5431fff164b 153 /** @brief: Leer desde el encoder
Yo_Robot 22:d5431fff164b 154 */
Yo_Robot 22:d5431fff164b 155 void setENC_eth( char * input, char * output );
Yo_Robot 22:d5431fff164b 156
Yo_Robot 22:d5431fff164b 157
Yo_Robot 23:2126e38bb48c 158 /** @brief: Limpiar contador del encoder
Yo_Robot 23:2126e38bb48c 159 */
Yo_Robot 23:2126e38bb48c 160 void getRPM_eth( char * input, char * output );
Yo_Robot 23:2126e38bb48c 161
Yo_Robot 22:d5431fff164b 162
Yo_Robot 32:4483d6c225e5 163 /** @brief: Lleva el carro hasta el inicio del recorrido y encera el encoder
Yo_Robot 32:4483d6c225e5 164 */
Yo_Robot 32:4483d6c225e5 165 void setHOME_eth( char * input, char * output );
Yo_Robot 32:4483d6c225e5 166
Yo_Robot 32:4483d6c225e5 167
Yo_Robot 34:bdf918bc9b59 168 /** @brief: Comprueba el estado de las alarmas
Yo_Robot 34:bdf918bc9b59 169 */
Yo_Robot 34:bdf918bc9b59 170 void getALM_eth ( char * input, char * output );
Yo_Robot 34:bdf918bc9b59 171
Yo_Robot 22:d5431fff164b 172 //________________ FUNCIONES ENCODER __________________//
Yo_Robot 22:d5431fff164b 173
Yo_Robot 12:c02b08dacc45 174 /** @brief: Cambiar Direccion @ PTO
Yo_Robot 12:c02b08dacc45 175 */
Yo_Robot 22:d5431fff164b 176 int read_encoder();
Yo_Robot 12:c02b08dacc45 177
Yo_Robot 12:c02b08dacc45 178
Yo_Robot 15:a1ffa32ce9d1 179 /** @brief: Cambiar Direccion @ PTO
Yo_Robot 15:a1ffa32ce9d1 180 */
Yo_Robot 22:d5431fff164b 181 void clear_encoder();
Yo_Robot 15:a1ffa32ce9d1 182
Yo_Robot 12:c02b08dacc45 183
Yo_Robot 12:c02b08dacc45 184
Yo_Robot 4:552beeda4722 185 // Legacy
Yo_Robot 4:552beeda4722 186 void setMR3( int newValue );
Yo_Robot 4:552beeda4722 187 void setPrescaler( int newValue );
Yo_Robot 20:4b154134ab20 188 EthernetNetIf configurarEthernet();
Yo_Robot 4:552beeda4722 189
Yo_Robot 4:552beeda4722 190
Yo_Robot 2:a1b556d78a7f 191 #endif