Es un programa de comunicacion serial que trabaja con habilitacion del tsi , en el que se pide desde una plataforma, con un protocolo con verificacion xor los valores de una entrada digital, una entradad analogica y los distintos ejes del accelerometro, a su vez se indica el funcionamiento del programa con 2 diferentes frecuencias de led

Dependencies:   mbed tsi_sensor MMA8451Q

Committer:
nahue2k18
Date:
Sun May 10 19:56:11 2020 +0000
Revision:
0:231d401c17dc
Es un programa serial que trabaja con habilitador del tsi, al que se le pueden pedir en forma de protocolo con verificacion xor, valores de una entrada digital, una entrada analogica y los diferentes ejes del acelerometro, con indicaciones led.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
nahue2k18 0:231d401c17dc 1 #include "mbed.h"
nahue2k18 0:231d401c17dc 2 #include "tsi_sensor.h"
nahue2k18 0:231d401c17dc 3 #include "MMA8451Q.h"
nahue2k18 0:231d401c17dc 4
nahue2k18 0:231d401c17dc 5 Serial pc(USBTX, USBRX);
nahue2k18 0:231d401c17dc 6
nahue2k18 0:231d401c17dc 7 /* This defines will be replaced by PinNames soon */
nahue2k18 0:231d401c17dc 8 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
nahue2k18 0:231d401c17dc 9 #define ELEC0 9
nahue2k18 0:231d401c17dc 10 #define ELEC1 10
nahue2k18 0:231d401c17dc 11 #elif defined (TARGET_KL05Z)
nahue2k18 0:231d401c17dc 12 #define ELEC0 9
nahue2k18 0:231d401c17dc 13 #define ELEC1 8
nahue2k18 0:231d401c17dc 14 #else
nahue2k18 0:231d401c17dc 15 #error TARGET NOT DEFINED
nahue2k18 0:231d401c17dc 16 #endif
nahue2k18 0:231d401c17dc 17
nahue2k18 0:231d401c17dc 18 TSIAnalogSlider tsi(ELEC0, ELEC1, 40);//DECLARO TSI
nahue2k18 0:231d401c17dc 19
nahue2k18 0:231d401c17dc 20 #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z)
nahue2k18 0:231d401c17dc 21 PinName const SDA = PTE25;
nahue2k18 0:231d401c17dc 22 PinName const SCL = PTE24;
nahue2k18 0:231d401c17dc 23 #elif defined (TARGET_KL05Z)
nahue2k18 0:231d401c17dc 24 PinName const SDA = PTB4;
nahue2k18 0:231d401c17dc 25 PinName const SCL = PTB3;
nahue2k18 0:231d401c17dc 26 #elif defined (TARGET_K20D50M)
nahue2k18 0:231d401c17dc 27 PinName const SDA = PTB1;
nahue2k18 0:231d401c17dc 28 PinName const SCL = PTB0;
nahue2k18 0:231d401c17dc 29 #else
nahue2k18 0:231d401c17dc 30 #error TARGET NOT DEFINED
nahue2k18 0:231d401c17dc 31 #endif
nahue2k18 0:231d401c17dc 32
nahue2k18 0:231d401c17dc 33 #define MMA8451_I2C_ADDRESS (0x1d<<1)
nahue2k18 0:231d401c17dc 34
nahue2k18 0:231d401c17dc 35 MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS);//DECLARO ACELEROMETRO
nahue2k18 0:231d401c17dc 36
nahue2k18 0:231d401c17dc 37 Ticker ti;//DECLARO EL TIMER 1
nahue2k18 0:231d401c17dc 38
nahue2k18 0:231d401c17dc 39 DigitalOut LV(LED2);
nahue2k18 0:231d401c17dc 40 AnalogIn ANALOGICA(A2);
nahue2k18 0:231d401c17dc 41 DigitalIn ENTRADA (PTB10);
nahue2k18 0:231d401c17dc 42
nahue2k18 0:231d401c17dc 43 //DECLARO MAQUINAS DE ESTADOS
nahue2k18 0:231d401c17dc 44 void ME_SERIE_RECIBO(void);
nahue2k18 0:231d401c17dc 45 void ME_SERIE_ENVIO(void);
nahue2k18 0:231d401c17dc 46 void ME_LED_SERIE_ON(void);
nahue2k18 0:231d401c17dc 47 void ME_LED_SERIE_OFF(void);
nahue2k18 0:231d401c17dc 48
nahue2k18 0:231d401c17dc 49 //DECLARO FUNCIONES
nahue2k18 0:231d401c17dc 50 void TSII(void);//FUNCION TSI
nahue2k18 0:231d401c17dc 51 void ANALOGICO(void);//FUNCION DE LA ENTRADA ANALOGICA
nahue2k18 0:231d401c17dc 52 void ACELEROMETRO(void);//FUNCION ACELEROMETRO
nahue2k18 0:231d401c17dc 53 void tiempo(void);//FUNCION DEL TIMER
nahue2k18 0:231d401c17dc 54
nahue2k18 0:231d401c17dc 55 //bit usado como flag para procesar datos
nahue2k18 0:231d401c17dc 56 bool newdata = false;
nahue2k18 0:231d401c17dc 57
nahue2k18 0:231d401c17dc 58 //VARIABLES DEL SERIE RECIBO
nahue2k18 0:231d401c17dc 59 char c = '\0';
nahue2k18 0:231d401c17dc 60
nahue2k18 0:231d401c17dc 61 //Callback cuando se detecta una entrada
nahue2k18 0:231d401c17dc 62 void onCharReceived()
nahue2k18 0:231d401c17dc 63 {
nahue2k18 0:231d401c17dc 64 //Copiamos lo leido en c
nahue2k18 0:231d401c17dc 65 c = pc.getc();
nahue2k18 0:231d401c17dc 66 newdata = true;
nahue2k18 0:231d401c17dc 67 }
nahue2k18 0:231d401c17dc 68
nahue2k18 0:231d401c17dc 69 //VARIABLES DE SERIE RECIBO
nahue2k18 0:231d401c17dc 70 int e_serie_recibo=0;
nahue2k18 0:231d401c17dc 71 bool ok=0, recibo_A=0, recibo_$=0, recibo_V=0, recibo_D=0, recibo_1=0, recibo_X=0, recibo_Y=0, recibo_Z=0;
nahue2k18 0:231d401c17dc 72
nahue2k18 0:231d401c17dc 73 //VARIABLES DE SERIE ENVIO
nahue2k18 0:231d401c17dc 74 int e_serie_envio=0;
nahue2k18 0:231d401c17dc 75
nahue2k18 0:231d401c17dc 76 // VARIABLES DE LED SERIE ON
nahue2k18 0:231d401c17dc 77 bool e_led_serie_on=0;
nahue2k18 0:231d401c17dc 78
nahue2k18 0:231d401c17dc 79 // VARIABLES DE LED SERIE ON
nahue2k18 0:231d401c17dc 80 bool e_led_serie_off=0;
nahue2k18 0:231d401c17dc 81
nahue2k18 0:231d401c17dc 82 // VARIABLES DEL TSII
nahue2k18 0:231d401c17dc 83 float j=0;
nahue2k18 0:231d401c17dc 84 bool inicio=0;
nahue2k18 0:231d401c17dc 85
nahue2k18 0:231d401c17dc 86 // VARIABLES DE LA ENTRADA ANALOGICA
nahue2k18 0:231d401c17dc 87 int analog=0;
nahue2k18 0:231d401c17dc 88 int analog_previa=0;
nahue2k18 0:231d401c17dc 89 int analog_unidad=0, analog_decena=0;
nahue2k18 0:231d401c17dc 90 int analog_unidad_ascii=0, analog_decena_ascii=0;
nahue2k18 0:231d401c17dc 91 int analog_unidad_xor=0, analog_decena_xor=0;
nahue2k18 0:231d401c17dc 92
nahue2k18 0:231d401c17dc 93 // VARIABLES DEL ACELEROMETRO
nahue2k18 0:231d401c17dc 94 float x=0, y=0, z=0;
nahue2k18 0:231d401c17dc 95 int x_previa=0, y_previa=0, z_previa=0;
nahue2k18 0:231d401c17dc 96 int x_unidad=0, x_decena=0, y_unidad=0, y_decena=0, z_unidad=0, z_decena=0;
nahue2k18 0:231d401c17dc 97 int unidad_x_ascii=0, decena_x_ascii=0, unidad_y_ascii=0, decena_y_ascii=0, unidad_z_ascii=0, decena_z_ascii=0;
nahue2k18 0:231d401c17dc 98 int xor_x_decena=0, xor_y_decena=0, xor_z_decena=0, xor_x_unidad=0, xor_y_unidad=0, xor_z_unidad=0;
nahue2k18 0:231d401c17dc 99
nahue2k18 0:231d401c17dc 100 // VARIABLES DEL TIMER
nahue2k18 0:231d401c17dc 101 int t_tsii=0;
nahue2k18 0:231d401c17dc 102 int t_led_serie_on=0;
nahue2k18 0:231d401c17dc 103 int t_led_serie_off=0;
nahue2k18 0:231d401c17dc 104 int main()
nahue2k18 0:231d401c17dc 105 {
nahue2k18 0:231d401c17dc 106 pc.attach(&onCharReceived);
nahue2k18 0:231d401c17dc 107 LV=1;
nahue2k18 0:231d401c17dc 108 ti.attach(&tiempo,0.05);
nahue2k18 0:231d401c17dc 109 while(1) {
nahue2k18 0:231d401c17dc 110 TSII();
nahue2k18 0:231d401c17dc 111 if(inicio==1) {
nahue2k18 0:231d401c17dc 112 ME_SERIE_RECIBO();
nahue2k18 0:231d401c17dc 113 ME_SERIE_ENVIO();
nahue2k18 0:231d401c17dc 114 ME_LED_SERIE_ON();
nahue2k18 0:231d401c17dc 115 } else {
nahue2k18 0:231d401c17dc 116 ME_LED_SERIE_OFF();
nahue2k18 0:231d401c17dc 117 }
nahue2k18 0:231d401c17dc 118 }
nahue2k18 0:231d401c17dc 119 }
nahue2k18 0:231d401c17dc 120
nahue2k18 0:231d401c17dc 121 void ME_SERIE_RECIBO(void)
nahue2k18 0:231d401c17dc 122 {
nahue2k18 0:231d401c17dc 123 if (newdata) {
nahue2k18 0:231d401c17dc 124 newdata=false;
nahue2k18 0:231d401c17dc 125 switch(e_serie_recibo) {
nahue2k18 0:231d401c17dc 126 default:
nahue2k18 0:231d401c17dc 127 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 128 break;
nahue2k18 0:231d401c17dc 129 case 0:
nahue2k18 0:231d401c17dc 130 if(c=='$') {
nahue2k18 0:231d401c17dc 131 e_serie_recibo=1;
nahue2k18 0:231d401c17dc 132 recibo_$=1;
nahue2k18 0:231d401c17dc 133 break;
nahue2k18 0:231d401c17dc 134 } else {
nahue2k18 0:231d401c17dc 135 printf("\n error de codigo\r\n");
nahue2k18 0:231d401c17dc 136 ok=0;
nahue2k18 0:231d401c17dc 137 recibo_$=0;
nahue2k18 0:231d401c17dc 138 recibo_A=0;
nahue2k18 0:231d401c17dc 139 recibo_V=0;
nahue2k18 0:231d401c17dc 140 recibo_D=0;
nahue2k18 0:231d401c17dc 141 recibo_1=0;
nahue2k18 0:231d401c17dc 142 recibo_X=0;
nahue2k18 0:231d401c17dc 143 recibo_Y=0;
nahue2k18 0:231d401c17dc 144 recibo_Z=0;
nahue2k18 0:231d401c17dc 145 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 146
nahue2k18 0:231d401c17dc 147 }
nahue2k18 0:231d401c17dc 148 break;
nahue2k18 0:231d401c17dc 149 case 1:
nahue2k18 0:231d401c17dc 150 if (c=='A') {
nahue2k18 0:231d401c17dc 151 recibo_A=1;
nahue2k18 0:231d401c17dc 152 e_serie_recibo=2;
nahue2k18 0:231d401c17dc 153 break;
nahue2k18 0:231d401c17dc 154 } else if(c=='V') {
nahue2k18 0:231d401c17dc 155 recibo_V=1;
nahue2k18 0:231d401c17dc 156 e_serie_recibo=2;
nahue2k18 0:231d401c17dc 157 break;
nahue2k18 0:231d401c17dc 158 } else if(c=='D') {
nahue2k18 0:231d401c17dc 159 recibo_D=1;
nahue2k18 0:231d401c17dc 160 e_serie_recibo=2;
nahue2k18 0:231d401c17dc 161 break;
nahue2k18 0:231d401c17dc 162 } else {
nahue2k18 0:231d401c17dc 163 printf("\n error de codigo\r\n");
nahue2k18 0:231d401c17dc 164 ok=0;
nahue2k18 0:231d401c17dc 165 recibo_$=0;
nahue2k18 0:231d401c17dc 166 recibo_A=0;
nahue2k18 0:231d401c17dc 167 recibo_V=0;
nahue2k18 0:231d401c17dc 168 recibo_D=0;
nahue2k18 0:231d401c17dc 169 recibo_1=0;
nahue2k18 0:231d401c17dc 170 recibo_X=0;
nahue2k18 0:231d401c17dc 171 recibo_Y=0;
nahue2k18 0:231d401c17dc 172 recibo_Z=0;
nahue2k18 0:231d401c17dc 173 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 174 }
nahue2k18 0:231d401c17dc 175 break;
nahue2k18 0:231d401c17dc 176 case 2:
nahue2k18 0:231d401c17dc 177 if(c=='X') {
nahue2k18 0:231d401c17dc 178 recibo_X=1;
nahue2k18 0:231d401c17dc 179 e_serie_recibo=3;
nahue2k18 0:231d401c17dc 180 break;
nahue2k18 0:231d401c17dc 181 } else if(c=='Y') {
nahue2k18 0:231d401c17dc 182 recibo_Y=1;
nahue2k18 0:231d401c17dc 183 e_serie_recibo=3;
nahue2k18 0:231d401c17dc 184 break;
nahue2k18 0:231d401c17dc 185 } else if(c=='Z') {
nahue2k18 0:231d401c17dc 186 recibo_Z=1;
nahue2k18 0:231d401c17dc 187 e_serie_recibo=3;
nahue2k18 0:231d401c17dc 188 break;
nahue2k18 0:231d401c17dc 189 } else if(c=='1') {
nahue2k18 0:231d401c17dc 190 recibo_1=1;
nahue2k18 0:231d401c17dc 191 e_serie_recibo=3;
nahue2k18 0:231d401c17dc 192 break;
nahue2k18 0:231d401c17dc 193 } else {
nahue2k18 0:231d401c17dc 194 printf("\n error de codigo\r\n");
nahue2k18 0:231d401c17dc 195 ok=0;
nahue2k18 0:231d401c17dc 196 recibo_$=0;
nahue2k18 0:231d401c17dc 197 recibo_A=0;
nahue2k18 0:231d401c17dc 198 recibo_V=0;
nahue2k18 0:231d401c17dc 199 recibo_D=0;
nahue2k18 0:231d401c17dc 200 recibo_1=0;
nahue2k18 0:231d401c17dc 201 recibo_X=0;
nahue2k18 0:231d401c17dc 202 recibo_Y=0;
nahue2k18 0:231d401c17dc 203 recibo_Z=0;
nahue2k18 0:231d401c17dc 204 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 205 }
nahue2k18 0:231d401c17dc 206 break;
nahue2k18 0:231d401c17dc 207 case 3:
nahue2k18 0:231d401c17dc 208 if(c=='%') {
nahue2k18 0:231d401c17dc 209 ok=1;
nahue2k18 0:231d401c17dc 210 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 211 } else {
nahue2k18 0:231d401c17dc 212 printf("\n error de codigo\r\n");
nahue2k18 0:231d401c17dc 213 ok=0;
nahue2k18 0:231d401c17dc 214 recibo_$=0;
nahue2k18 0:231d401c17dc 215 recibo_A=0;
nahue2k18 0:231d401c17dc 216 recibo_V=0;
nahue2k18 0:231d401c17dc 217 recibo_D=0;
nahue2k18 0:231d401c17dc 218 recibo_1=0;
nahue2k18 0:231d401c17dc 219 recibo_X=0;
nahue2k18 0:231d401c17dc 220 recibo_Y=0;
nahue2k18 0:231d401c17dc 221 recibo_Z=0;
nahue2k18 0:231d401c17dc 222 e_serie_recibo=0;
nahue2k18 0:231d401c17dc 223 }
nahue2k18 0:231d401c17dc 224 break;
nahue2k18 0:231d401c17dc 225 }
nahue2k18 0:231d401c17dc 226
nahue2k18 0:231d401c17dc 227 }
nahue2k18 0:231d401c17dc 228 }
nahue2k18 0:231d401c17dc 229
nahue2k18 0:231d401c17dc 230 void ME_SERIE_ENVIO(void)
nahue2k18 0:231d401c17dc 231 {
nahue2k18 0:231d401c17dc 232 if(ok==1) {
nahue2k18 0:231d401c17dc 233 switch(e_serie_envio) {
nahue2k18 0:231d401c17dc 234 default:
nahue2k18 0:231d401c17dc 235 e_serie_envio=0;
nahue2k18 0:231d401c17dc 236 case 0:
nahue2k18 0:231d401c17dc 237 if(recibo_$==1) {
nahue2k18 0:231d401c17dc 238 recibo_$=0;
nahue2k18 0:231d401c17dc 239 e_serie_envio=1;
nahue2k18 0:231d401c17dc 240 break;
nahue2k18 0:231d401c17dc 241 }
nahue2k18 0:231d401c17dc 242 break;
nahue2k18 0:231d401c17dc 243 case 1:
nahue2k18 0:231d401c17dc 244 if(recibo_A==1) {
nahue2k18 0:231d401c17dc 245 recibo_A=0;
nahue2k18 0:231d401c17dc 246 e_serie_envio=2;
nahue2k18 0:231d401c17dc 247 break;
nahue2k18 0:231d401c17dc 248 } else if(recibo_V==1) {
nahue2k18 0:231d401c17dc 249 recibo_V=0;
nahue2k18 0:231d401c17dc 250 e_serie_envio=3;
nahue2k18 0:231d401c17dc 251 break;
nahue2k18 0:231d401c17dc 252 } else if(recibo_D==1) {
nahue2k18 0:231d401c17dc 253 recibo_D=0;
nahue2k18 0:231d401c17dc 254 e_serie_envio=4;
nahue2k18 0:231d401c17dc 255 }
nahue2k18 0:231d401c17dc 256 break;
nahue2k18 0:231d401c17dc 257 case 2:
nahue2k18 0:231d401c17dc 258 if(recibo_X==1) {
nahue2k18 0:231d401c17dc 259 ACELEROMETRO();
nahue2k18 0:231d401c17dc 260 printf("\n $AX%d%d%x%% \r\n",x_decena,x_unidad,xor_x_unidad);
nahue2k18 0:231d401c17dc 261 ok=0;
nahue2k18 0:231d401c17dc 262 recibo_$=0;
nahue2k18 0:231d401c17dc 263 recibo_A=0;
nahue2k18 0:231d401c17dc 264 recibo_V=0;
nahue2k18 0:231d401c17dc 265 recibo_D=0;
nahue2k18 0:231d401c17dc 266 recibo_1=0;
nahue2k18 0:231d401c17dc 267 recibo_X=0;
nahue2k18 0:231d401c17dc 268 recibo_Y=0;
nahue2k18 0:231d401c17dc 269 recibo_Z=0;
nahue2k18 0:231d401c17dc 270 e_serie_envio=0;
nahue2k18 0:231d401c17dc 271 break;
nahue2k18 0:231d401c17dc 272 } else if (recibo_Y==1) {
nahue2k18 0:231d401c17dc 273 ACELEROMETRO();
nahue2k18 0:231d401c17dc 274 printf("\n $AY%d%d%x%% \r\n",y_decena,y_unidad,xor_y_unidad);
nahue2k18 0:231d401c17dc 275 ok=0;
nahue2k18 0:231d401c17dc 276 recibo_$=0;
nahue2k18 0:231d401c17dc 277 recibo_A=0;
nahue2k18 0:231d401c17dc 278 recibo_V=0;
nahue2k18 0:231d401c17dc 279 recibo_D=0;
nahue2k18 0:231d401c17dc 280 recibo_1=0;
nahue2k18 0:231d401c17dc 281 recibo_X=0;
nahue2k18 0:231d401c17dc 282 recibo_Y=0;
nahue2k18 0:231d401c17dc 283 recibo_Z=0;
nahue2k18 0:231d401c17dc 284 e_serie_envio=0;
nahue2k18 0:231d401c17dc 285 break;
nahue2k18 0:231d401c17dc 286 } else if(recibo_Z==1) {
nahue2k18 0:231d401c17dc 287 ACELEROMETRO();
nahue2k18 0:231d401c17dc 288 printf("\n $AZ%d%d%x%% \r\n",z_decena,z_unidad,xor_z_unidad);
nahue2k18 0:231d401c17dc 289 ok=0;
nahue2k18 0:231d401c17dc 290 recibo_$=0;
nahue2k18 0:231d401c17dc 291 recibo_A=0;
nahue2k18 0:231d401c17dc 292 recibo_V=0;
nahue2k18 0:231d401c17dc 293 recibo_D=0;
nahue2k18 0:231d401c17dc 294 recibo_1=0;
nahue2k18 0:231d401c17dc 295 recibo_X=0;
nahue2k18 0:231d401c17dc 296 recibo_Y=0;
nahue2k18 0:231d401c17dc 297 recibo_Z=0;
nahue2k18 0:231d401c17dc 298 e_serie_envio=0;
nahue2k18 0:231d401c17dc 299 }
nahue2k18 0:231d401c17dc 300 break;
nahue2k18 0:231d401c17dc 301 case 3:
nahue2k18 0:231d401c17dc 302 if(recibo_1==1) {
nahue2k18 0:231d401c17dc 303 ANALOGICO();
nahue2k18 0:231d401c17dc 304 printf("\n $V1%d%d%x%% \r\n",analog_decena,analog_unidad,analog_unidad_xor);
nahue2k18 0:231d401c17dc 305 ok=0;
nahue2k18 0:231d401c17dc 306 recibo_$=0;
nahue2k18 0:231d401c17dc 307 recibo_A=0;
nahue2k18 0:231d401c17dc 308 recibo_V=0;
nahue2k18 0:231d401c17dc 309 recibo_D=0;
nahue2k18 0:231d401c17dc 310 recibo_1=0;
nahue2k18 0:231d401c17dc 311 recibo_X=0;
nahue2k18 0:231d401c17dc 312 recibo_Y=0;
nahue2k18 0:231d401c17dc 313 recibo_Z=0;
nahue2k18 0:231d401c17dc 314 e_serie_envio=0;
nahue2k18 0:231d401c17dc 315 }
nahue2k18 0:231d401c17dc 316 break;
nahue2k18 0:231d401c17dc 317 case 4:
nahue2k18 0:231d401c17dc 318 if(recibo_1==1) {
nahue2k18 0:231d401c17dc 319 if(ENTRADA==1) {
nahue2k18 0:231d401c17dc 320 printf("\n $D10174%% \r\n");
nahue2k18 0:231d401c17dc 321 ok=0;
nahue2k18 0:231d401c17dc 322 recibo_$=0;
nahue2k18 0:231d401c17dc 323 recibo_A=0;
nahue2k18 0:231d401c17dc 324 recibo_V=0;
nahue2k18 0:231d401c17dc 325 recibo_D=0;
nahue2k18 0:231d401c17dc 326 recibo_1=0;
nahue2k18 0:231d401c17dc 327 recibo_X=0;
nahue2k18 0:231d401c17dc 328 recibo_Y=0;
nahue2k18 0:231d401c17dc 329 recibo_Z=0;
nahue2k18 0:231d401c17dc 330 e_serie_envio=0;
nahue2k18 0:231d401c17dc 331 break;
nahue2k18 0:231d401c17dc 332 } else {
nahue2k18 0:231d401c17dc 333 printf("\n $D10075%% \r\n");
nahue2k18 0:231d401c17dc 334 ok=0;
nahue2k18 0:231d401c17dc 335 recibo_$=0;
nahue2k18 0:231d401c17dc 336 recibo_A=0;
nahue2k18 0:231d401c17dc 337 recibo_V=0;
nahue2k18 0:231d401c17dc 338 recibo_D=0;
nahue2k18 0:231d401c17dc 339 recibo_1=0;
nahue2k18 0:231d401c17dc 340 recibo_X=0;
nahue2k18 0:231d401c17dc 341 recibo_Y=0;
nahue2k18 0:231d401c17dc 342 recibo_Z=0;
nahue2k18 0:231d401c17dc 343 e_serie_envio=0;
nahue2k18 0:231d401c17dc 344 break;
nahue2k18 0:231d401c17dc 345 }
nahue2k18 0:231d401c17dc 346 }
nahue2k18 0:231d401c17dc 347 break;
nahue2k18 0:231d401c17dc 348 }
nahue2k18 0:231d401c17dc 349 }
nahue2k18 0:231d401c17dc 350 }
nahue2k18 0:231d401c17dc 351
nahue2k18 0:231d401c17dc 352 void ME_LED_SERIE_ON(void)
nahue2k18 0:231d401c17dc 353 {
nahue2k18 0:231d401c17dc 354 if(inicio==1) {
nahue2k18 0:231d401c17dc 355 switch(e_led_serie_on) {
nahue2k18 0:231d401c17dc 356 case 0:
nahue2k18 0:231d401c17dc 357 LV=0;
nahue2k18 0:231d401c17dc 358 if(t_led_serie_on>=3 && LV==0) {
nahue2k18 0:231d401c17dc 359 t_led_serie_on=0;
nahue2k18 0:231d401c17dc 360 e_led_serie_on=1;
nahue2k18 0:231d401c17dc 361 }
nahue2k18 0:231d401c17dc 362 break;
nahue2k18 0:231d401c17dc 363 case 1:
nahue2k18 0:231d401c17dc 364 LV=1;
nahue2k18 0:231d401c17dc 365 if(t_led_serie_on>=10 && LV==1) {
nahue2k18 0:231d401c17dc 366 t_led_serie_on=0;
nahue2k18 0:231d401c17dc 367 e_led_serie_on=0;
nahue2k18 0:231d401c17dc 368 }
nahue2k18 0:231d401c17dc 369 break;
nahue2k18 0:231d401c17dc 370 }
nahue2k18 0:231d401c17dc 371 }
nahue2k18 0:231d401c17dc 372 }
nahue2k18 0:231d401c17dc 373
nahue2k18 0:231d401c17dc 374 void ME_LED_SERIE_OFF(void)
nahue2k18 0:231d401c17dc 375 {
nahue2k18 0:231d401c17dc 376 if(inicio==0) {
nahue2k18 0:231d401c17dc 377 switch(e_led_serie_off) {
nahue2k18 0:231d401c17dc 378 case 0:
nahue2k18 0:231d401c17dc 379 LV=0;
nahue2k18 0:231d401c17dc 380 if(t_led_serie_off>=5 && LV==0) {
nahue2k18 0:231d401c17dc 381 t_led_serie_off=0;
nahue2k18 0:231d401c17dc 382 e_led_serie_off=1;
nahue2k18 0:231d401c17dc 383 }
nahue2k18 0:231d401c17dc 384 break;
nahue2k18 0:231d401c17dc 385 case 1:
nahue2k18 0:231d401c17dc 386 LV=1;
nahue2k18 0:231d401c17dc 387 if(t_led_serie_off>=5 && LV==1) {
nahue2k18 0:231d401c17dc 388 t_led_serie_off=0;
nahue2k18 0:231d401c17dc 389 e_led_serie_off=0;
nahue2k18 0:231d401c17dc 390 }
nahue2k18 0:231d401c17dc 391 break;
nahue2k18 0:231d401c17dc 392 }
nahue2k18 0:231d401c17dc 393 }
nahue2k18 0:231d401c17dc 394 }
nahue2k18 0:231d401c17dc 395
nahue2k18 0:231d401c17dc 396 void TSII(void)
nahue2k18 0:231d401c17dc 397 {
nahue2k18 0:231d401c17dc 398 j=tsi.readPercentage();
nahue2k18 0:231d401c17dc 399 if(j>0.01 && t_tsii==0) {
nahue2k18 0:231d401c17dc 400 inicio=!inicio;
nahue2k18 0:231d401c17dc 401 t_tsii=3;
nahue2k18 0:231d401c17dc 402 }
nahue2k18 0:231d401c17dc 403 }
nahue2k18 0:231d401c17dc 404
nahue2k18 0:231d401c17dc 405 void ANALOGICO(void)
nahue2k18 0:231d401c17dc 406 {
nahue2k18 0:231d401c17dc 407 analog=ANALOGICA.read_u16();
nahue2k18 0:231d401c17dc 408 //USO REGLA DE 3
nahue2k18 0:231d401c17dc 409 analog_previa=(analog*33)/65536;
nahue2k18 0:231d401c17dc 410 //DIVIDO UNIADADES Y DECENAS
nahue2k18 0:231d401c17dc 411 analog_decena=analog_previa/10;
nahue2k18 0:231d401c17dc 412 analog_unidad=analog_previa-(analog_decena*10);
nahue2k18 0:231d401c17dc 413 //PASO A ASCII
nahue2k18 0:231d401c17dc 414 analog_decena_ascii=analog_decena+48;
nahue2k18 0:231d401c17dc 415 analog_unidad_ascii=analog_unidad+48;
nahue2k18 0:231d401c17dc 416 //PASO A XOR PARA VERIFICACION
nahue2k18 0:231d401c17dc 417 analog_decena_xor = analog_decena_ascii ^ 103;
nahue2k18 0:231d401c17dc 418 analog_unidad_xor = analog_decena_xor ^ analog_unidad_ascii;
nahue2k18 0:231d401c17dc 419
nahue2k18 0:231d401c17dc 420 }
nahue2k18 0:231d401c17dc 421
nahue2k18 0:231d401c17dc 422 void ACELEROMETRO(void)
nahue2k18 0:231d401c17dc 423 {
nahue2k18 0:231d401c17dc 424 x = abs(acc.getAccX());
nahue2k18 0:231d401c17dc 425 y = abs(acc.getAccY());
nahue2k18 0:231d401c17dc 426 z = abs(acc.getAccZ());
nahue2k18 0:231d401c17dc 427
nahue2k18 0:231d401c17dc 428 x_previa= x*10;
nahue2k18 0:231d401c17dc 429 //DIVIDO UNIADADES Y DECENAS
nahue2k18 0:231d401c17dc 430 x_decena=x_previa/10;
nahue2k18 0:231d401c17dc 431 x_unidad=x_previa-(x_decena*10);
nahue2k18 0:231d401c17dc 432 //PASO A ASCII
nahue2k18 0:231d401c17dc 433 decena_x_ascii= x_decena+48;
nahue2k18 0:231d401c17dc 434 unidad_x_ascii= x_unidad+48;
nahue2k18 0:231d401c17dc 435 //PASO A XOR PARA VERIFICACION
nahue2k18 0:231d401c17dc 436 xor_x_decena= 25 ^ decena_x_ascii;
nahue2k18 0:231d401c17dc 437 xor_x_unidad=xor_x_decena ^ unidad_x_ascii;
nahue2k18 0:231d401c17dc 438
nahue2k18 0:231d401c17dc 439 y_previa= y*10;
nahue2k18 0:231d401c17dc 440 //DIVIDO UNIADADES Y DECENAS
nahue2k18 0:231d401c17dc 441 y_decena=y_previa/10;
nahue2k18 0:231d401c17dc 442 y_unidad=y_previa-(y_decena*10);
nahue2k18 0:231d401c17dc 443 //PASO A ASCII
nahue2k18 0:231d401c17dc 444 decena_y_ascii= y_decena+48;
nahue2k18 0:231d401c17dc 445 unidad_y_ascii= y_unidad+48;
nahue2k18 0:231d401c17dc 446 //PASO A XOR PARA VERIFICACION
nahue2k18 0:231d401c17dc 447 xor_y_decena= 24 ^ decena_y_ascii;
nahue2k18 0:231d401c17dc 448 xor_y_unidad=xor_y_decena ^ unidad_y_ascii;
nahue2k18 0:231d401c17dc 449
nahue2k18 0:231d401c17dc 450 z_previa= z*10;
nahue2k18 0:231d401c17dc 451 //DIVIDO UNIADADES Y DECENAS
nahue2k18 0:231d401c17dc 452 z_decena=z_previa/10;
nahue2k18 0:231d401c17dc 453 z_unidad=z_previa-(z_decena*10);
nahue2k18 0:231d401c17dc 454 //PASO A ASCII
nahue2k18 0:231d401c17dc 455 decena_z_ascii= z_decena+48;
nahue2k18 0:231d401c17dc 456 unidad_z_ascii= z_unidad+48;
nahue2k18 0:231d401c17dc 457 //PASO A XOR PARA VERIFICACION
nahue2k18 0:231d401c17dc 458 xor_z_decena = 27 ^ decena_z_ascii;
nahue2k18 0:231d401c17dc 459 xor_z_unidad = xor_z_decena ^ unidad_z_ascii;
nahue2k18 0:231d401c17dc 460
nahue2k18 0:231d401c17dc 461 }
nahue2k18 0:231d401c17dc 462
nahue2k18 0:231d401c17dc 463 void tiempo(void)
nahue2k18 0:231d401c17dc 464 {
nahue2k18 0:231d401c17dc 465 t_led_serie_off++;
nahue2k18 0:231d401c17dc 466 t_led_serie_on++;
nahue2k18 0:231d401c17dc 467 t_tsii--;
nahue2k18 0:231d401c17dc 468 if(t_tsii <=0) {
nahue2k18 0:231d401c17dc 469 t_tsii=0;
nahue2k18 0:231d401c17dc 470 }
nahue2k18 0:231d401c17dc 471 }