Versión de Firmware con funciones de RAM incorporadas.
Dependencies: mbed
Fork of VmRecorderV1dot1 by
Pantallas/AutoCalibracion.cpp@2:e818c80e6d5c, 2015-07-14 (annotated)
- Committer:
- JuanManuelAmador
- Date:
- Tue Jul 14 08:34:11 2015 +0000
- Revision:
- 2:e818c80e6d5c
- Parent:
- 0:3d456b8ce449
Funciones de memoria RAM introducidas.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
JuanManuelAmador | 0:3d456b8ce449 | 1 | #include "AutoCalibracion.h" |
JuanManuelAmador | 0:3d456b8ce449 | 2 | /// ACELEROMETRO DIGITAL/// |
JuanManuelAmador | 0:3d456b8ce449 | 3 | extern KXR94 kionix; |
JuanManuelAmador | 0:3d456b8ce449 | 4 | |
JuanManuelAmador | 0:3d456b8ce449 | 5 | extern ScreenManager SC; |
JuanManuelAmador | 0:3d456b8ce449 | 6 | extern SistemaArchivos SA; |
JuanManuelAmador | 0:3d456b8ce449 | 7 | extern Configuracion config; |
JuanManuelAmador | 0:3d456b8ce449 | 8 | extern MSCFileSystem msc; |
JuanManuelAmador | 0:3d456b8ce449 | 9 | |
JuanManuelAmador | 0:3d456b8ce449 | 10 | extern DigitalIn boton5; |
JuanManuelAmador | 0:3d456b8ce449 | 11 | extern DigitalIn boton6; |
JuanManuelAmador | 0:3d456b8ce449 | 12 | |
JuanManuelAmador | 0:3d456b8ce449 | 13 | void AutoCalibracion::initialize(DogMLCD* lcd){ |
JuanManuelAmador | 0:3d456b8ce449 | 14 | pasoCalibracion = 0; // Pantalla de introduccion |
JuanManuelAmador | 0:3d456b8ce449 | 15 | |
JuanManuelAmador | 0:3d456b8ce449 | 16 | mediaXpos = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 17 | mediaYpos = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 18 | mediaZpos = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 19 | mediaXneg = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 20 | mediaYneg = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 21 | mediaZneg = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 22 | |
JuanManuelAmador | 0:3d456b8ce449 | 23 | // Inicilización de las variables |
JuanManuelAmador | 0:3d456b8ce449 | 24 | pulsado5 = false; |
JuanManuelAmador | 0:3d456b8ce449 | 25 | pulsado6 = false; |
JuanManuelAmador | 0:3d456b8ce449 | 26 | leyendoDatos = false; |
JuanManuelAmador | 0:3d456b8ce449 | 27 | |
JuanManuelAmador | 0:3d456b8ce449 | 28 | char idioma[16]; |
JuanManuelAmador | 0:3d456b8ce449 | 29 | // Se selecciona el idioma |
JuanManuelAmador | 0:3d456b8ce449 | 30 | config.getIdioma(idioma); |
JuanManuelAmador | 0:3d456b8ce449 | 31 | |
JuanManuelAmador | 0:3d456b8ce449 | 32 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 33 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 34 | |
JuanManuelAmador | 0:3d456b8ce449 | 35 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 36 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 37 | lcd->XString( OFFSETX, OFFSETY, "Autocalibraci\242n"); |
JuanManuelAmador | 0:3d456b8ce449 | 38 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 39 | lcd->XString( OFFSETX, OFFSETY, "Autocalibration"); |
JuanManuelAmador | 0:3d456b8ce449 | 40 | } |
JuanManuelAmador | 0:3d456b8ce449 | 41 | |
JuanManuelAmador | 0:3d456b8ce449 | 42 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 43 | |
JuanManuelAmador | 0:3d456b8ce449 | 44 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 45 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Siga los pasos siguientes"); |
JuanManuelAmador | 0:3d456b8ce449 | 46 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "para calibrar el"); |
JuanManuelAmador | 0:3d456b8ce449 | 47 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "dispositivo."); |
JuanManuelAmador | 0:3d456b8ce449 | 48 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 49 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Follow next steps to"); |
JuanManuelAmador | 0:3d456b8ce449 | 50 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "calibrate the device."); |
JuanManuelAmador | 0:3d456b8ce449 | 51 | } |
JuanManuelAmador | 0:3d456b8ce449 | 52 | |
JuanManuelAmador | 0:3d456b8ce449 | 53 | // transmit work screen to physical screen: |
JuanManuelAmador | 0:3d456b8ce449 | 54 | lcd->Flush(); |
JuanManuelAmador | 0:3d456b8ce449 | 55 | |
JuanManuelAmador | 0:3d456b8ce449 | 56 | // Se prepara el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 57 | kionix.AcelerometroWakeUp(); |
JuanManuelAmador | 0:3d456b8ce449 | 58 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 59 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 60 | |
JuanManuelAmador | 0:3d456b8ce449 | 61 | // output msg2 text |
JuanManuelAmador | 0:3d456b8ce449 | 62 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 63 | lcd->XString( OFFSETX, HEIGHT -1 - 18, "OK para continuar."); |
JuanManuelAmador | 0:3d456b8ce449 | 64 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 65 | lcd->XString( OFFSETX, HEIGHT -1 - 18, "OK to continue."); |
JuanManuelAmador | 0:3d456b8ce449 | 66 | } |
JuanManuelAmador | 0:3d456b8ce449 | 67 | |
JuanManuelAmador | 0:3d456b8ce449 | 68 | // transmit work screen to physical screen: |
JuanManuelAmador | 0:3d456b8ce449 | 69 | lcd->Flush(); |
JuanManuelAmador | 0:3d456b8ce449 | 70 | } |
JuanManuelAmador | 0:3d456b8ce449 | 71 | |
JuanManuelAmador | 0:3d456b8ce449 | 72 | void AutoCalibracion::update(DogMLCD* lcd){ |
JuanManuelAmador | 0:3d456b8ce449 | 73 | // Si se están leyendo datos se comprueba si se ha tomado el número de medidas deseadas |
JuanManuelAmador | 0:3d456b8ce449 | 74 | if(leyendoDatos){ |
JuanManuelAmador | 0:3d456b8ce449 | 75 | if(datosCapturados >= NDATOSPASO){ // Se ha acabado la lectura de los datos |
JuanManuelAmador | 0:3d456b8ce449 | 76 | // Se para la lectura de datos |
JuanManuelAmador | 0:3d456b8ce449 | 77 | tickerLectura.detach(); |
JuanManuelAmador | 0:3d456b8ce449 | 78 | |
JuanManuelAmador | 0:3d456b8ce449 | 79 | leyendoDatos = false; |
JuanManuelAmador | 0:3d456b8ce449 | 80 | |
JuanManuelAmador | 0:3d456b8ce449 | 81 | // Se guarda el valor de la media en su variable correspondiente |
JuanManuelAmador | 0:3d456b8ce449 | 82 | // Dependiendo del paso nos interesa sumar un eje en concreto |
JuanManuelAmador | 0:3d456b8ce449 | 83 | switch(pasoCalibracion){ |
JuanManuelAmador | 0:3d456b8ce449 | 84 | case 1: |
JuanManuelAmador | 0:3d456b8ce449 | 85 | mediaXpos = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 86 | //mediaZpos = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 87 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 88 | |
JuanManuelAmador | 0:3d456b8ce449 | 89 | case 2: |
JuanManuelAmador | 0:3d456b8ce449 | 90 | mediaXneg = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 91 | //mediaXneg = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 92 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 93 | |
JuanManuelAmador | 0:3d456b8ce449 | 94 | case 3: |
JuanManuelAmador | 0:3d456b8ce449 | 95 | mediaYneg = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 96 | //mediaXpos = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 97 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 98 | |
JuanManuelAmador | 0:3d456b8ce449 | 99 | case 4: |
JuanManuelAmador | 0:3d456b8ce449 | 100 | mediaYpos = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 101 | //mediaYpos = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 102 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 103 | |
JuanManuelAmador | 0:3d456b8ce449 | 104 | case 5: |
JuanManuelAmador | 0:3d456b8ce449 | 105 | mediaZpos = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 106 | //mediaYneg = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 107 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 108 | |
JuanManuelAmador | 0:3d456b8ce449 | 109 | case 6: |
JuanManuelAmador | 0:3d456b8ce449 | 110 | mediaZneg = mediaAux/NDATOSPASO; |
JuanManuelAmador | 0:3d456b8ce449 | 111 | //mediaZneg = mediaAux; |
JuanManuelAmador | 0:3d456b8ce449 | 112 | |
JuanManuelAmador | 0:3d456b8ce449 | 113 | // Una vez terminado el paso 6 ya se tienen los datos suficientes para calcular los parámetros de calibración |
JuanManuelAmador | 0:3d456b8ce449 | 114 | // Primero se calculan los factores de conversión a unidades físicas |
JuanManuelAmador | 0:3d456b8ce449 | 115 | float newKX; |
JuanManuelAmador | 0:3d456b8ce449 | 116 | float newKY; |
JuanManuelAmador | 0:3d456b8ce449 | 117 | float newKZ; |
JuanManuelAmador | 0:3d456b8ce449 | 118 | if(mediaXpos >= mediaXneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 119 | newKX = (2.0*ACELGRAVEDAD)/(mediaXpos - mediaXneg); |
JuanManuelAmador | 0:3d456b8ce449 | 120 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 121 | newKX = (2.0*ACELGRAVEDAD)/(mediaXneg - mediaXpos); |
JuanManuelAmador | 0:3d456b8ce449 | 122 | } |
JuanManuelAmador | 0:3d456b8ce449 | 123 | |
JuanManuelAmador | 0:3d456b8ce449 | 124 | if(mediaYpos >= mediaYneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 125 | newKY = (2.0*ACELGRAVEDAD)/(mediaYpos - mediaYneg); |
JuanManuelAmador | 0:3d456b8ce449 | 126 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 127 | newKY = (2.0*ACELGRAVEDAD)/(mediaYneg - mediaYpos); |
JuanManuelAmador | 0:3d456b8ce449 | 128 | } |
JuanManuelAmador | 0:3d456b8ce449 | 129 | |
JuanManuelAmador | 0:3d456b8ce449 | 130 | if(mediaZpos >= mediaZneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 131 | newKZ = (2.0*ACELGRAVEDAD)/(mediaZpos - mediaZneg); |
JuanManuelAmador | 0:3d456b8ce449 | 132 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 133 | newKZ = (2.0*ACELGRAVEDAD)/(mediaZneg - mediaZpos); |
JuanManuelAmador | 0:3d456b8ce449 | 134 | } |
JuanManuelAmador | 0:3d456b8ce449 | 135 | |
JuanManuelAmador | 0:3d456b8ce449 | 136 | // Se calcula el offset de cada eje |
JuanManuelAmador | 0:3d456b8ce449 | 137 | float newAX; |
JuanManuelAmador | 0:3d456b8ce449 | 138 | float newAY; |
JuanManuelAmador | 0:3d456b8ce449 | 139 | float newAZ; |
JuanManuelAmador | 0:3d456b8ce449 | 140 | |
JuanManuelAmador | 0:3d456b8ce449 | 141 | //if(mediaXpos >= mediaXneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 142 | //newAX = mediaXpos - (ACELGRAVEDAD/KX); |
JuanManuelAmador | 0:3d456b8ce449 | 143 | /*}else{ |
JuanManuelAmador | 0:3d456b8ce449 | 144 | newAX = mediaXneg - (ACELGRAVEDAD/KX); |
JuanManuelAmador | 0:3d456b8ce449 | 145 | }*/ |
JuanManuelAmador | 0:3d456b8ce449 | 146 | |
JuanManuelAmador | 0:3d456b8ce449 | 147 | //if(mediaYpos >= mediaYneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 148 | //newAY = mediaYpos - (ACELGRAVEDAD/KY); |
JuanManuelAmador | 0:3d456b8ce449 | 149 | /*}else{ |
JuanManuelAmador | 0:3d456b8ce449 | 150 | newAY = mediaYneg - (ACELGRAVEDAD/KY); |
JuanManuelAmador | 0:3d456b8ce449 | 151 | }*/ |
JuanManuelAmador | 0:3d456b8ce449 | 152 | |
JuanManuelAmador | 0:3d456b8ce449 | 153 | //if(mediaZpos >= mediaZneg){ |
JuanManuelAmador | 0:3d456b8ce449 | 154 | //newAZ = mediaZpos - (ACELGRAVEDAD/KZ); |
JuanManuelAmador | 0:3d456b8ce449 | 155 | /*}else{ |
JuanManuelAmador | 0:3d456b8ce449 | 156 | newAZ = mediaZneg - (ACELGRAVEDAD/KZ); |
JuanManuelAmador | 0:3d456b8ce449 | 157 | }*/ |
JuanManuelAmador | 0:3d456b8ce449 | 158 | |
JuanManuelAmador | 0:3d456b8ce449 | 159 | newAX = (mediaXpos + mediaXneg)/2.0; |
JuanManuelAmador | 0:3d456b8ce449 | 160 | newAY = (mediaYpos + mediaYneg)/2.0; |
JuanManuelAmador | 0:3d456b8ce449 | 161 | newAZ = (mediaZpos + mediaZneg)/2.0; |
JuanManuelAmador | 0:3d456b8ce449 | 162 | |
JuanManuelAmador | 0:3d456b8ce449 | 163 | float param[] = {newAX, newAY, newAZ, newKX, newKY, newKZ}; |
JuanManuelAmador | 0:3d456b8ce449 | 164 | |
JuanManuelAmador | 0:3d456b8ce449 | 165 | /*FILE* fp = fopen("/local/prueba1.txt","w"); |
JuanManuelAmador | 0:3d456b8ce449 | 166 | fprintf(fp, "%f\n%f\n\n%f\n%f\n\n%f\n%f\n\n%f\n%f\n%f\n\n%f\n%f\n%f\n", mediaYpos, mediaYneg, mediaXpos, mediaXneg, mediaZneg, mediaZpos, newAX, newAY, newAZ, newKX, newKY, newKZ); |
JuanManuelAmador | 0:3d456b8ce449 | 167 | fclose(fp);*/ |
JuanManuelAmador | 0:3d456b8ce449 | 168 | |
JuanManuelAmador | 0:3d456b8ce449 | 169 | // Se guardan los nuevos valores de calibración |
JuanManuelAmador | 0:3d456b8ce449 | 170 | ParametrosCalibracion::saveValores(param); |
JuanManuelAmador | 0:3d456b8ce449 | 171 | |
JuanManuelAmador | 0:3d456b8ce449 | 172 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 173 | } |
JuanManuelAmador | 0:3d456b8ce449 | 174 | |
JuanManuelAmador | 0:3d456b8ce449 | 175 | pasoCalibracion++; |
JuanManuelAmador | 0:3d456b8ce449 | 176 | |
JuanManuelAmador | 0:3d456b8ce449 | 177 | // Se pinta la siguiente pantalla |
JuanManuelAmador | 0:3d456b8ce449 | 178 | lcd->Flush(); |
JuanManuelAmador | 0:3d456b8ce449 | 179 | |
JuanManuelAmador | 0:3d456b8ce449 | 180 | } |
JuanManuelAmador | 0:3d456b8ce449 | 181 | } |
JuanManuelAmador | 0:3d456b8ce449 | 182 | |
JuanManuelAmador | 0:3d456b8ce449 | 183 | // Botón OK |
JuanManuelAmador | 0:3d456b8ce449 | 184 | if(boton5 == 1){ |
JuanManuelAmador | 0:3d456b8ce449 | 185 | pulsado5 = true; |
JuanManuelAmador | 0:3d456b8ce449 | 186 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 187 | if(pulsado5 == true){ // El boton ha sido pulsado |
JuanManuelAmador | 0:3d456b8ce449 | 188 | pulsado5 = false; |
JuanManuelAmador | 0:3d456b8ce449 | 189 | if(!leyendoDatos){ // Si el viaje no habia comenzado |
JuanManuelAmador | 0:3d456b8ce449 | 190 | leyendoDatos = true; |
JuanManuelAmador | 0:3d456b8ce449 | 191 | |
JuanManuelAmador | 0:3d456b8ce449 | 192 | // Se borra la pantalla |
JuanManuelAmador | 0:3d456b8ce449 | 193 | lcd->Clear(); |
JuanManuelAmador | 0:3d456b8ce449 | 194 | |
JuanManuelAmador | 0:3d456b8ce449 | 195 | char idioma[16]; |
JuanManuelAmador | 0:3d456b8ce449 | 196 | // Se selecciona el idioma |
JuanManuelAmador | 0:3d456b8ce449 | 197 | config.getIdioma(idioma); |
JuanManuelAmador | 0:3d456b8ce449 | 198 | |
JuanManuelAmador | 0:3d456b8ce449 | 199 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 200 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 201 | |
JuanManuelAmador | 0:3d456b8ce449 | 202 | // Algunos mensajes son comunes para todos los pasos |
JuanManuelAmador | 0:3d456b8ce449 | 203 | // output msg2 text |
JuanManuelAmador | 0:3d456b8ce449 | 204 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 205 | lcd->XString( OFFSETX, HEIGHT -1 - 18, "OK para continuar."); |
JuanManuelAmador | 0:3d456b8ce449 | 206 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 207 | lcd->XString( OFFSETX, HEIGHT -1 - 18, "OK to continue."); |
JuanManuelAmador | 0:3d456b8ce449 | 208 | } |
JuanManuelAmador | 0:3d456b8ce449 | 209 | |
JuanManuelAmador | 0:3d456b8ce449 | 210 | // Dependiendo del paso nos interesa sumar un eje en concreto |
JuanManuelAmador | 0:3d456b8ce449 | 211 | switch(pasoCalibracion){ |
JuanManuelAmador | 0:3d456b8ce449 | 212 | case 0: |
JuanManuelAmador | 0:3d456b8ce449 | 213 | // Se pasa directamente al Paso 1 |
JuanManuelAmador | 0:3d456b8ce449 | 214 | leyendoDatos = false; |
JuanManuelAmador | 0:3d456b8ce449 | 215 | |
JuanManuelAmador | 0:3d456b8ce449 | 216 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 217 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 218 | |
JuanManuelAmador | 0:3d456b8ce449 | 219 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 220 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 221 | lcd->XString( OFFSETX, OFFSETY, "Paso 1"); |
JuanManuelAmador | 0:3d456b8ce449 | 222 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 223 | lcd->XString( OFFSETX, OFFSETY, "Step 1"); |
JuanManuelAmador | 0:3d456b8ce449 | 224 | } |
JuanManuelAmador | 0:3d456b8ce449 | 225 | |
JuanManuelAmador | 0:3d456b8ce449 | 226 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 227 | |
JuanManuelAmador | 0:3d456b8ce449 | 228 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 229 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara derecha del"); |
JuanManuelAmador | 0:3d456b8ce449 | 230 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 231 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 232 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 233 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the right side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 234 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 235 | } |
JuanManuelAmador | 0:3d456b8ce449 | 236 | |
JuanManuelAmador | 0:3d456b8ce449 | 237 | // Se prepara el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 238 | kionix.AcelerometroWakeUp(); |
JuanManuelAmador | 0:3d456b8ce449 | 239 | |
JuanManuelAmador | 0:3d456b8ce449 | 240 | // Se pinta la siguiente pantalla |
JuanManuelAmador | 0:3d456b8ce449 | 241 | lcd->Flush(); |
JuanManuelAmador | 0:3d456b8ce449 | 242 | pasoCalibracion++; |
JuanManuelAmador | 0:3d456b8ce449 | 243 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 244 | |
JuanManuelAmador | 0:3d456b8ce449 | 245 | case 1: |
JuanManuelAmador | 0:3d456b8ce449 | 246 | // Lectura de datos del paso 1, se prepara la pantalla del paso 2 |
JuanManuelAmador | 0:3d456b8ce449 | 247 | |
JuanManuelAmador | 0:3d456b8ce449 | 248 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 249 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 250 | |
JuanManuelAmador | 0:3d456b8ce449 | 251 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 252 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 253 | lcd->XString( OFFSETX, OFFSETY, "Paso 2"); |
JuanManuelAmador | 0:3d456b8ce449 | 254 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 255 | lcd->XString( OFFSETX, OFFSETY, "Step 2"); |
JuanManuelAmador | 0:3d456b8ce449 | 256 | } |
JuanManuelAmador | 0:3d456b8ce449 | 257 | |
JuanManuelAmador | 0:3d456b8ce449 | 258 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 259 | |
JuanManuelAmador | 0:3d456b8ce449 | 260 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 261 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara izquierda del"); |
JuanManuelAmador | 0:3d456b8ce449 | 262 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 263 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 264 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 265 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the left side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 266 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 267 | } |
JuanManuelAmador | 0:3d456b8ce449 | 268 | |
JuanManuelAmador | 0:3d456b8ce449 | 269 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 270 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 271 | |
JuanManuelAmador | 0:3d456b8ce449 | 272 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 273 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 274 | wait(OFFSETTIEMPO); |
JuanManuelAmador | 0:3d456b8ce449 | 275 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 276 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 277 | |
JuanManuelAmador | 0:3d456b8ce449 | 278 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 279 | |
JuanManuelAmador | 0:3d456b8ce449 | 280 | case 2: |
JuanManuelAmador | 0:3d456b8ce449 | 281 | |
JuanManuelAmador | 0:3d456b8ce449 | 282 | // Lectura de datos del paso 1, se prepara la pantalla del paso 3 |
JuanManuelAmador | 0:3d456b8ce449 | 283 | |
JuanManuelAmador | 0:3d456b8ce449 | 284 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 285 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 286 | |
JuanManuelAmador | 0:3d456b8ce449 | 287 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 288 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 289 | lcd->XString( OFFSETX, OFFSETY, "Paso 3"); |
JuanManuelAmador | 0:3d456b8ce449 | 290 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 291 | lcd->XString( OFFSETX, OFFSETY, "Step 3"); |
JuanManuelAmador | 0:3d456b8ce449 | 292 | } |
JuanManuelAmador | 0:3d456b8ce449 | 293 | |
JuanManuelAmador | 0:3d456b8ce449 | 294 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 295 | |
JuanManuelAmador | 0:3d456b8ce449 | 296 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 297 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara superior del"); |
JuanManuelAmador | 0:3d456b8ce449 | 298 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 299 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 300 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 301 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the top side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 302 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 303 | } |
JuanManuelAmador | 0:3d456b8ce449 | 304 | |
JuanManuelAmador | 0:3d456b8ce449 | 305 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 306 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 307 | |
JuanManuelAmador | 0:3d456b8ce449 | 308 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 309 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 310 | wait(OFFSETTIEMPO); |
JuanManuelAmador | 0:3d456b8ce449 | 311 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 312 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 313 | |
JuanManuelAmador | 0:3d456b8ce449 | 314 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 315 | |
JuanManuelAmador | 0:3d456b8ce449 | 316 | case 3: |
JuanManuelAmador | 0:3d456b8ce449 | 317 | |
JuanManuelAmador | 0:3d456b8ce449 | 318 | // Lectura de datos del paso 1, se prepara la pantalla del paso 4 |
JuanManuelAmador | 0:3d456b8ce449 | 319 | |
JuanManuelAmador | 0:3d456b8ce449 | 320 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 321 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 322 | |
JuanManuelAmador | 0:3d456b8ce449 | 323 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 324 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 325 | lcd->XString( OFFSETX, OFFSETY, "Paso 4"); |
JuanManuelAmador | 0:3d456b8ce449 | 326 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 327 | lcd->XString( OFFSETX, OFFSETY, "Step 4"); |
JuanManuelAmador | 0:3d456b8ce449 | 328 | } |
JuanManuelAmador | 0:3d456b8ce449 | 329 | |
JuanManuelAmador | 0:3d456b8ce449 | 330 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 331 | |
JuanManuelAmador | 0:3d456b8ce449 | 332 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 333 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara inferior del"); |
JuanManuelAmador | 0:3d456b8ce449 | 334 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 335 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 336 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 337 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the bottom side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 338 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 339 | } |
JuanManuelAmador | 0:3d456b8ce449 | 340 | |
JuanManuelAmador | 0:3d456b8ce449 | 341 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 342 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 343 | |
JuanManuelAmador | 0:3d456b8ce449 | 344 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 345 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 346 | wait(OFFSETTIEMPO); |
JuanManuelAmador | 0:3d456b8ce449 | 347 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 348 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 349 | |
JuanManuelAmador | 0:3d456b8ce449 | 350 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 351 | |
JuanManuelAmador | 0:3d456b8ce449 | 352 | case 4: |
JuanManuelAmador | 0:3d456b8ce449 | 353 | |
JuanManuelAmador | 0:3d456b8ce449 | 354 | // Lectura de datos del paso 1, se prepara la pantalla del paso 5 |
JuanManuelAmador | 0:3d456b8ce449 | 355 | |
JuanManuelAmador | 0:3d456b8ce449 | 356 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 357 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 358 | |
JuanManuelAmador | 0:3d456b8ce449 | 359 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 360 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 361 | lcd->XString( OFFSETX, OFFSETY, "Paso 5"); |
JuanManuelAmador | 0:3d456b8ce449 | 362 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 363 | lcd->XString( OFFSETX, OFFSETY, "Step 5"); |
JuanManuelAmador | 0:3d456b8ce449 | 364 | } |
JuanManuelAmador | 0:3d456b8ce449 | 365 | |
JuanManuelAmador | 0:3d456b8ce449 | 366 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 367 | |
JuanManuelAmador | 0:3d456b8ce449 | 368 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 369 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara frontal del"); |
JuanManuelAmador | 0:3d456b8ce449 | 370 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 371 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 372 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 373 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the front side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 374 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 375 | } |
JuanManuelAmador | 0:3d456b8ce449 | 376 | |
JuanManuelAmador | 0:3d456b8ce449 | 377 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 378 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 379 | |
JuanManuelAmador | 0:3d456b8ce449 | 380 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 381 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 382 | wait(OFFSETTIEMPO); |
JuanManuelAmador | 0:3d456b8ce449 | 383 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 384 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 385 | |
JuanManuelAmador | 0:3d456b8ce449 | 386 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 387 | |
JuanManuelAmador | 0:3d456b8ce449 | 388 | case 5: |
JuanManuelAmador | 0:3d456b8ce449 | 389 | |
JuanManuelAmador | 0:3d456b8ce449 | 390 | // Lectura de datos del paso 1, se prepara la pantalla del paso 6 |
JuanManuelAmador | 0:3d456b8ce449 | 391 | |
JuanManuelAmador | 0:3d456b8ce449 | 392 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 393 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 394 | |
JuanManuelAmador | 0:3d456b8ce449 | 395 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 396 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 397 | lcd->XString( OFFSETX, OFFSETY, "Paso 6"); |
JuanManuelAmador | 0:3d456b8ce449 | 398 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 399 | lcd->XString( OFFSETX, OFFSETY, "Step 6"); |
JuanManuelAmador | 0:3d456b8ce449 | 400 | } |
JuanManuelAmador | 0:3d456b8ce449 | 401 | |
JuanManuelAmador | 0:3d456b8ce449 | 402 | lcd->XFont = xfont_8; |
JuanManuelAmador | 0:3d456b8ce449 | 403 | |
JuanManuelAmador | 0:3d456b8ce449 | 404 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 405 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Coloque la cara trasera del"); |
JuanManuelAmador | 0:3d456b8ce449 | 406 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "dispositivo sobre una"); |
JuanManuelAmador | 0:3d456b8ce449 | 407 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8*2, "superficie plana."); |
JuanManuelAmador | 0:3d456b8ce449 | 408 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 409 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG, "Place the rear side of the"); |
JuanManuelAmador | 0:3d456b8ce449 | 410 | lcd->XString( OFFSETX, OFFSETY + OFFSETMSG + 8, "device on a flat surface."); |
JuanManuelAmador | 0:3d456b8ce449 | 411 | } |
JuanManuelAmador | 0:3d456b8ce449 | 412 | |
JuanManuelAmador | 0:3d456b8ce449 | 413 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 414 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 415 | |
JuanManuelAmador | 0:3d456b8ce449 | 416 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 417 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 418 | wait(OFFSETTIEMPO*2); |
JuanManuelAmador | 0:3d456b8ce449 | 419 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 420 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 421 | |
JuanManuelAmador | 0:3d456b8ce449 | 422 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 423 | |
JuanManuelAmador | 0:3d456b8ce449 | 424 | case 6: |
JuanManuelAmador | 0:3d456b8ce449 | 425 | |
JuanManuelAmador | 0:3d456b8ce449 | 426 | // select font to use: |
JuanManuelAmador | 0:3d456b8ce449 | 427 | lcd->XFont = xfont_11; |
JuanManuelAmador | 0:3d456b8ce449 | 428 | |
JuanManuelAmador | 0:3d456b8ce449 | 429 | // output title text |
JuanManuelAmador | 0:3d456b8ce449 | 430 | if(strcmp(idioma, "spanish") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 431 | lcd->XString( OFFSETX + 28, OFFSETY + 8, "Calibraci\242n"); |
JuanManuelAmador | 0:3d456b8ce449 | 432 | lcd->XString( OFFSETX + 28, OFFSETY + 8 + 12, "completada."); |
JuanManuelAmador | 0:3d456b8ce449 | 433 | }else if(strcmp(idioma, "english") == 0){ |
JuanManuelAmador | 0:3d456b8ce449 | 434 | lcd->XString( OFFSETX + 28, OFFSETY + 8, "Calibration"); |
JuanManuelAmador | 0:3d456b8ce449 | 435 | lcd->XString( OFFSETX + 28, OFFSETY + 8 + 12, "completed."); |
JuanManuelAmador | 0:3d456b8ce449 | 436 | } |
JuanManuelAmador | 0:3d456b8ce449 | 437 | |
JuanManuelAmador | 0:3d456b8ce449 | 438 | mediaAux = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 439 | datosCapturados = 0; |
JuanManuelAmador | 0:3d456b8ce449 | 440 | |
JuanManuelAmador | 0:3d456b8ce449 | 441 | // Se espera unos segundos antes de comenzar a tomar medidas para asegurar las vibraciones debidas |
JuanManuelAmador | 0:3d456b8ce449 | 442 | // a la pulsación del botón no interfieren en las medidas |
JuanManuelAmador | 0:3d456b8ce449 | 443 | wait(OFFSETTIEMPO); |
JuanManuelAmador | 0:3d456b8ce449 | 444 | // Se comienza a leer el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 445 | tickerLectura.attach_us(this, &AutoCalibracion::LeeAcelerometro, USENTREDATOS); |
JuanManuelAmador | 0:3d456b8ce449 | 446 | |
JuanManuelAmador | 0:3d456b8ce449 | 447 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 448 | |
JuanManuelAmador | 0:3d456b8ce449 | 449 | case 7: |
JuanManuelAmador | 0:3d456b8ce449 | 450 | // Se duerme el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 451 | kionix.AcelerometroSleep(); |
JuanManuelAmador | 0:3d456b8ce449 | 452 | // Se vuelve a la pantalla de configuración |
JuanManuelAmador | 0:3d456b8ce449 | 453 | SC.changeScreen("configuracion"); |
JuanManuelAmador | 0:3d456b8ce449 | 454 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 455 | } |
JuanManuelAmador | 0:3d456b8ce449 | 456 | } |
JuanManuelAmador | 0:3d456b8ce449 | 457 | } |
JuanManuelAmador | 0:3d456b8ce449 | 458 | } |
JuanManuelAmador | 0:3d456b8ce449 | 459 | |
JuanManuelAmador | 0:3d456b8ce449 | 460 | // Botón atrás |
JuanManuelAmador | 0:3d456b8ce449 | 461 | if(boton6 == 1){ |
JuanManuelAmador | 0:3d456b8ce449 | 462 | pulsado6 = true; |
JuanManuelAmador | 0:3d456b8ce449 | 463 | }else{ |
JuanManuelAmador | 0:3d456b8ce449 | 464 | if(pulsado6 == true){ |
JuanManuelAmador | 0:3d456b8ce449 | 465 | pulsado6 = false; |
JuanManuelAmador | 0:3d456b8ce449 | 466 | // En cualquier momento puede volverse atrás (al menú de configuración) parando el proceso actual y perdiendo todos los datos que se hayan guardado de la calibración hasta el mommento, teniendo que repetir el proceso |
JuanManuelAmador | 0:3d456b8ce449 | 467 | // Se duerme el acelerómetro |
JuanManuelAmador | 0:3d456b8ce449 | 468 | kionix.AcelerometroSleep(); |
JuanManuelAmador | 0:3d456b8ce449 | 469 | SC.changeScreen("configuracion"); |
JuanManuelAmador | 0:3d456b8ce449 | 470 | } |
JuanManuelAmador | 0:3d456b8ce449 | 471 | } |
JuanManuelAmador | 0:3d456b8ce449 | 472 | } |
JuanManuelAmador | 0:3d456b8ce449 | 473 | |
JuanManuelAmador | 0:3d456b8ce449 | 474 | void AutoCalibracion::LeeAcelerometro() |
JuanManuelAmador | 0:3d456b8ce449 | 475 | { |
JuanManuelAmador | 0:3d456b8ce449 | 476 | kionix.ReadAccels_KXR94(readings); |
JuanManuelAmador | 0:3d456b8ce449 | 477 | |
JuanManuelAmador | 0:3d456b8ce449 | 478 | // Dependiendo del paso nos interesa sumar un eje en concreto |
JuanManuelAmador | 0:3d456b8ce449 | 479 | switch(pasoCalibracion){ |
JuanManuelAmador | 0:3d456b8ce449 | 480 | case 1: |
JuanManuelAmador | 0:3d456b8ce449 | 481 | mediaAux += readings[0]; |
JuanManuelAmador | 0:3d456b8ce449 | 482 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 483 | |
JuanManuelAmador | 0:3d456b8ce449 | 484 | case 2: |
JuanManuelAmador | 0:3d456b8ce449 | 485 | mediaAux += readings[0]; |
JuanManuelAmador | 0:3d456b8ce449 | 486 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 487 | |
JuanManuelAmador | 0:3d456b8ce449 | 488 | case 3: |
JuanManuelAmador | 0:3d456b8ce449 | 489 | mediaAux += readings[1]; |
JuanManuelAmador | 0:3d456b8ce449 | 490 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 491 | |
JuanManuelAmador | 0:3d456b8ce449 | 492 | case 4: |
JuanManuelAmador | 0:3d456b8ce449 | 493 | mediaAux += readings[1]; |
JuanManuelAmador | 0:3d456b8ce449 | 494 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 495 | |
JuanManuelAmador | 0:3d456b8ce449 | 496 | case 5: |
JuanManuelAmador | 0:3d456b8ce449 | 497 | mediaAux += readings[2]; |
JuanManuelAmador | 0:3d456b8ce449 | 498 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 499 | |
JuanManuelAmador | 0:3d456b8ce449 | 500 | case 6: |
JuanManuelAmador | 0:3d456b8ce449 | 501 | mediaAux += readings[2]; |
JuanManuelAmador | 0:3d456b8ce449 | 502 | break; |
JuanManuelAmador | 0:3d456b8ce449 | 503 | } |
JuanManuelAmador | 0:3d456b8ce449 | 504 | |
JuanManuelAmador | 0:3d456b8ce449 | 505 | datosCapturados++; |
JuanManuelAmador | 0:3d456b8ce449 | 506 | } |