
Proyecto completo del trabajo practico de Embebidos
Dependencies: mbed tsi_sensor MMA8451Q
main.cpp@0:7cc43619dcac, 2020-10-21 (annotated)
- Committer:
- AlvaAcosta
- Date:
- Wed Oct 21 08:22:05 2020 +0000
- Revision:
- 0:7cc43619dcac
Trabajo Practico de embebidos mesa especial octubre
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
AlvaAcosta | 0:7cc43619dcac | 1 | #include "mbed.h" |
AlvaAcosta | 0:7cc43619dcac | 2 | #include "MMA8451Q.h" |
AlvaAcosta | 0:7cc43619dcac | 3 | #include "tsi_sensor.h" |
AlvaAcosta | 0:7cc43619dcac | 4 | |
AlvaAcosta | 0:7cc43619dcac | 5 | #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z) |
AlvaAcosta | 0:7cc43619dcac | 6 | #define ELEC0 9 |
AlvaAcosta | 0:7cc43619dcac | 7 | #define ELEC1 10 |
AlvaAcosta | 0:7cc43619dcac | 8 | #else |
AlvaAcosta | 0:7cc43619dcac | 9 | #error TARGET NOT DEFINED |
AlvaAcosta | 0:7cc43619dcac | 10 | #endif |
AlvaAcosta | 0:7cc43619dcac | 11 | |
AlvaAcosta | 0:7cc43619dcac | 12 | #if defined (TARGET_KL25Z) || defined (TARGET_KL46Z) |
AlvaAcosta | 0:7cc43619dcac | 13 | PinName const SDA = PTE25; |
AlvaAcosta | 0:7cc43619dcac | 14 | PinName const SCL = PTE24; |
AlvaAcosta | 0:7cc43619dcac | 15 | #else |
AlvaAcosta | 0:7cc43619dcac | 16 | #error TARGET NOT DEFINED |
AlvaAcosta | 0:7cc43619dcac | 17 | #endif |
AlvaAcosta | 0:7cc43619dcac | 18 | |
AlvaAcosta | 0:7cc43619dcac | 19 | #define MMA8451_I2C_ADDRESS (0x1d<<1) |
AlvaAcosta | 0:7cc43619dcac | 20 | |
AlvaAcosta | 0:7cc43619dcac | 21 | Serial pc(USBTX,USBRX); |
AlvaAcosta | 0:7cc43619dcac | 22 | TSIAnalogSlider tsi(ELEC0, ELEC1, 40); |
AlvaAcosta | 0:7cc43619dcac | 23 | MMA8451Q acc(SDA, SCL, MMA8451_I2C_ADDRESS); |
AlvaAcosta | 0:7cc43619dcac | 24 | |
AlvaAcosta | 0:7cc43619dcac | 25 | enum{ |
AlvaAcosta | 0:7cc43619dcac | 26 | INICIO, |
AlvaAcosta | 0:7cc43619dcac | 27 | ORDEN, |
AlvaAcosta | 0:7cc43619dcac | 28 | FIN |
AlvaAcosta | 0:7cc43619dcac | 29 | }; |
AlvaAcosta | 0:7cc43619dcac | 30 | |
AlvaAcosta | 0:7cc43619dcac | 31 | enum{ |
AlvaAcosta | 0:7cc43619dcac | 32 | RESP_X, |
AlvaAcosta | 0:7cc43619dcac | 33 | RESP_Y, |
AlvaAcosta | 0:7cc43619dcac | 34 | RESP_Z, |
AlvaAcosta | 0:7cc43619dcac | 35 | RESP_A, |
AlvaAcosta | 0:7cc43619dcac | 36 | RESP_D |
AlvaAcosta | 0:7cc43619dcac | 37 | }; |
AlvaAcosta | 0:7cc43619dcac | 38 | |
AlvaAcosta | 0:7cc43619dcac | 39 | enum{ |
AlvaAcosta | 0:7cc43619dcac | 40 | ROJO, |
AlvaAcosta | 0:7cc43619dcac | 41 | VERDE, |
AlvaAcosta | 0:7cc43619dcac | 42 | AZUL |
AlvaAcosta | 0:7cc43619dcac | 43 | }; |
AlvaAcosta | 0:7cc43619dcac | 44 | |
AlvaAcosta | 0:7cc43619dcac | 45 | enum{ |
AlvaAcosta | 0:7cc43619dcac | 46 | HABILITADO, |
AlvaAcosta | 0:7cc43619dcac | 47 | DESHABILITADO |
AlvaAcosta | 0:7cc43619dcac | 48 | }; |
AlvaAcosta | 0:7cc43619dcac | 49 | |
AlvaAcosta | 0:7cc43619dcac | 50 | enum{ |
AlvaAcosta | 0:7cc43619dcac | 51 | APAGADO, |
AlvaAcosta | 0:7cc43619dcac | 52 | ENCENDIDO |
AlvaAcosta | 0:7cc43619dcac | 53 | }; |
AlvaAcosta | 0:7cc43619dcac | 54 | |
AlvaAcosta | 0:7cc43619dcac | 55 | AnalogIn Pote(A0); |
AlvaAcosta | 0:7cc43619dcac | 56 | DigitalIn Puls(D2); |
AlvaAcosta | 0:7cc43619dcac | 57 | |
AlvaAcosta | 0:7cc43619dcac | 58 | DigitalOut Led_Ext(D3); |
AlvaAcosta | 0:7cc43619dcac | 59 | DigitalOut Led_R(LED_RED); |
AlvaAcosta | 0:7cc43619dcac | 60 | DigitalOut Led_V(LED_GREEN); |
AlvaAcosta | 0:7cc43619dcac | 61 | DigitalOut Led_A(LED_BLUE); |
AlvaAcosta | 0:7cc43619dcac | 62 | |
AlvaAcosta | 0:7cc43619dcac | 63 | unsigned int valor_ADC = 0, valor_ADC_xor = 0, Led_tout = 0, a_xor = 0; |
AlvaAcosta | 0:7cc43619dcac | 64 | int a = 0, esp = 0, habilitacion = 0, j = 0, i = 0, p = 0, x = 0, y = 0, z = 0, X_xor = 0, Y_xor = 0, Z_xor = 0, A_xor = 0, D_xor = 0; |
AlvaAcosta | 0:7cc43619dcac | 65 | float voltaje = 0, valor_tsi = 0; |
AlvaAcosta | 0:7cc43619dcac | 66 | char byte = '\0', c = '\0'; |
AlvaAcosta | 0:7cc43619dcac | 67 | char Estado_Emision, Estado_Respuesta, Estado_Color, Estado_Led, Estado_tsi = DESHABILITADO; |
AlvaAcosta | 0:7cc43619dcac | 68 | bool newdata = false; |
AlvaAcosta | 0:7cc43619dcac | 69 | |
AlvaAcosta | 0:7cc43619dcac | 70 | void Emision(); |
AlvaAcosta | 0:7cc43619dcac | 71 | void Respuesta(); |
AlvaAcosta | 0:7cc43619dcac | 72 | void ADC(); |
AlvaAcosta | 0:7cc43619dcac | 73 | void Acelerometro(); |
AlvaAcosta | 0:7cc43619dcac | 74 | void Led_RGB(); |
AlvaAcosta | 0:7cc43619dcac | 75 | void Led_Habilitado(); |
AlvaAcosta | 0:7cc43619dcac | 76 | void Led_Deshabilitado(); |
AlvaAcosta | 0:7cc43619dcac | 77 | void init_mcu(); |
AlvaAcosta | 0:7cc43619dcac | 78 | void contador(); |
AlvaAcosta | 0:7cc43619dcac | 79 | int Pulsador(); |
AlvaAcosta | 0:7cc43619dcac | 80 | |
AlvaAcosta | 0:7cc43619dcac | 81 | Ticker timer; |
AlvaAcosta | 0:7cc43619dcac | 82 | |
AlvaAcosta | 0:7cc43619dcac | 83 | void Byte_Reciver(){ |
AlvaAcosta | 0:7cc43619dcac | 84 | |
AlvaAcosta | 0:7cc43619dcac | 85 | byte = pc.getc(); |
AlvaAcosta | 0:7cc43619dcac | 86 | newdata = true; |
AlvaAcosta | 0:7cc43619dcac | 87 | } |
AlvaAcosta | 0:7cc43619dcac | 88 | |
AlvaAcosta | 0:7cc43619dcac | 89 | int main (void){ |
AlvaAcosta | 0:7cc43619dcac | 90 | |
AlvaAcosta | 0:7cc43619dcac | 91 | init_mcu(); |
AlvaAcosta | 0:7cc43619dcac | 92 | pc.attach(&Byte_Reciver); |
AlvaAcosta | 0:7cc43619dcac | 93 | |
AlvaAcosta | 0:7cc43619dcac | 94 | while(true){ |
AlvaAcosta | 0:7cc43619dcac | 95 | |
AlvaAcosta | 0:7cc43619dcac | 96 | valor_tsi = tsi.readPercentage(); |
AlvaAcosta | 0:7cc43619dcac | 97 | |
AlvaAcosta | 0:7cc43619dcac | 98 | switch(Estado_tsi){ |
AlvaAcosta | 0:7cc43619dcac | 99 | |
AlvaAcosta | 0:7cc43619dcac | 100 | case DESHABILITADO: |
AlvaAcosta | 0:7cc43619dcac | 101 | Led_Deshabilitado(); |
AlvaAcosta | 0:7cc43619dcac | 102 | j = 0; |
AlvaAcosta | 0:7cc43619dcac | 103 | if(valor_tsi > 0 && j == 0){ |
AlvaAcosta | 0:7cc43619dcac | 104 | Estado_tsi = HABILITADO; |
AlvaAcosta | 0:7cc43619dcac | 105 | valor_tsi = 0; |
AlvaAcosta | 0:7cc43619dcac | 106 | } |
AlvaAcosta | 0:7cc43619dcac | 107 | break; |
AlvaAcosta | 0:7cc43619dcac | 108 | |
AlvaAcosta | 0:7cc43619dcac | 109 | case HABILITADO: |
AlvaAcosta | 0:7cc43619dcac | 110 | Led_Habilitado(); |
AlvaAcosta | 0:7cc43619dcac | 111 | j = 1; |
AlvaAcosta | 0:7cc43619dcac | 112 | if(newdata){ |
AlvaAcosta | 0:7cc43619dcac | 113 | Emision(); |
AlvaAcosta | 0:7cc43619dcac | 114 | } |
AlvaAcosta | 0:7cc43619dcac | 115 | |
AlvaAcosta | 0:7cc43619dcac | 116 | if(valor_tsi > 0 && j == 1){ |
AlvaAcosta | 0:7cc43619dcac | 117 | Estado_tsi = DESHABILITADO; |
AlvaAcosta | 0:7cc43619dcac | 118 | valor_tsi = 0; |
AlvaAcosta | 0:7cc43619dcac | 119 | } |
AlvaAcosta | 0:7cc43619dcac | 120 | break; |
AlvaAcosta | 0:7cc43619dcac | 121 | } |
AlvaAcosta | 0:7cc43619dcac | 122 | |
AlvaAcosta | 0:7cc43619dcac | 123 | Led_RGB(); |
AlvaAcosta | 0:7cc43619dcac | 124 | |
AlvaAcosta | 0:7cc43619dcac | 125 | } |
AlvaAcosta | 0:7cc43619dcac | 126 | |
AlvaAcosta | 0:7cc43619dcac | 127 | } |
AlvaAcosta | 0:7cc43619dcac | 128 | |
AlvaAcosta | 0:7cc43619dcac | 129 | void Emision(){ |
AlvaAcosta | 0:7cc43619dcac | 130 | |
AlvaAcosta | 0:7cc43619dcac | 131 | switch(Estado_Emision){ |
AlvaAcosta | 0:7cc43619dcac | 132 | |
AlvaAcosta | 0:7cc43619dcac | 133 | case INICIO: |
AlvaAcosta | 0:7cc43619dcac | 134 | if(byte == 64){ |
AlvaAcosta | 0:7cc43619dcac | 135 | Estado_Emision = ORDEN; |
AlvaAcosta | 0:7cc43619dcac | 136 | newdata = false; |
AlvaAcosta | 0:7cc43619dcac | 137 | }else{ |
AlvaAcosta | 0:7cc43619dcac | 138 | Estado_Emision = INICIO; |
AlvaAcosta | 0:7cc43619dcac | 139 | } |
AlvaAcosta | 0:7cc43619dcac | 140 | break; |
AlvaAcosta | 0:7cc43619dcac | 141 | |
AlvaAcosta | 0:7cc43619dcac | 142 | case ORDEN: |
AlvaAcosta | 0:7cc43619dcac | 143 | if(byte >= 49 && byte <= 53){ |
AlvaAcosta | 0:7cc43619dcac | 144 | c = byte; |
AlvaAcosta | 0:7cc43619dcac | 145 | Estado_Emision = FIN; |
AlvaAcosta | 0:7cc43619dcac | 146 | newdata = false; |
AlvaAcosta | 0:7cc43619dcac | 147 | }else{ |
AlvaAcosta | 0:7cc43619dcac | 148 | c = '\0'; |
AlvaAcosta | 0:7cc43619dcac | 149 | Estado_Emision = ORDEN; |
AlvaAcosta | 0:7cc43619dcac | 150 | newdata = false; |
AlvaAcosta | 0:7cc43619dcac | 151 | } |
AlvaAcosta | 0:7cc43619dcac | 152 | break; |
AlvaAcosta | 0:7cc43619dcac | 153 | |
AlvaAcosta | 0:7cc43619dcac | 154 | case FIN: |
AlvaAcosta | 0:7cc43619dcac | 155 | if(byte == 35){ |
AlvaAcosta | 0:7cc43619dcac | 156 | Estado_Emision = INICIO; |
AlvaAcosta | 0:7cc43619dcac | 157 | Respuesta(); |
AlvaAcosta | 0:7cc43619dcac | 158 | }else{ |
AlvaAcosta | 0:7cc43619dcac | 159 | c = '\0'; |
AlvaAcosta | 0:7cc43619dcac | 160 | Estado_Emision = FIN; |
AlvaAcosta | 0:7cc43619dcac | 161 | newdata = false; |
AlvaAcosta | 0:7cc43619dcac | 162 | } |
AlvaAcosta | 0:7cc43619dcac | 163 | break; |
AlvaAcosta | 0:7cc43619dcac | 164 | } |
AlvaAcosta | 0:7cc43619dcac | 165 | |
AlvaAcosta | 0:7cc43619dcac | 166 | } |
AlvaAcosta | 0:7cc43619dcac | 167 | |
AlvaAcosta | 0:7cc43619dcac | 168 | void Respuesta(){ |
AlvaAcosta | 0:7cc43619dcac | 169 | |
AlvaAcosta | 0:7cc43619dcac | 170 | ADC(); |
AlvaAcosta | 0:7cc43619dcac | 171 | Acelerometro(); |
AlvaAcosta | 0:7cc43619dcac | 172 | Pulsador(); |
AlvaAcosta | 0:7cc43619dcac | 173 | |
AlvaAcosta | 0:7cc43619dcac | 174 | |
AlvaAcosta | 0:7cc43619dcac | 175 | if(c == 49) Estado_Respuesta = RESP_X; |
AlvaAcosta | 0:7cc43619dcac | 176 | if(c == 50) Estado_Respuesta = RESP_Y; |
AlvaAcosta | 0:7cc43619dcac | 177 | if(c == 51) Estado_Respuesta = RESP_Z; |
AlvaAcosta | 0:7cc43619dcac | 178 | if(c == 52) Estado_Respuesta = RESP_A; |
AlvaAcosta | 0:7cc43619dcac | 179 | if(c == 53) Estado_Respuesta = RESP_D; |
AlvaAcosta | 0:7cc43619dcac | 180 | |
AlvaAcosta | 0:7cc43619dcac | 181 | |
AlvaAcosta | 0:7cc43619dcac | 182 | switch(Estado_Respuesta){ |
AlvaAcosta | 0:7cc43619dcac | 183 | |
AlvaAcosta | 0:7cc43619dcac | 184 | case RESP_X: |
AlvaAcosta | 0:7cc43619dcac | 185 | printf(" @ 1 %d %d #\n", x, X_xor ); |
AlvaAcosta | 0:7cc43619dcac | 186 | break; |
AlvaAcosta | 0:7cc43619dcac | 187 | |
AlvaAcosta | 0:7cc43619dcac | 188 | case RESP_Y: |
AlvaAcosta | 0:7cc43619dcac | 189 | printf(" @ 2 %d %d #\n", y, Y_xor); |
AlvaAcosta | 0:7cc43619dcac | 190 | break; |
AlvaAcosta | 0:7cc43619dcac | 191 | |
AlvaAcosta | 0:7cc43619dcac | 192 | case RESP_Z: |
AlvaAcosta | 0:7cc43619dcac | 193 | printf(" @ 3 %d %d #\n", z, Z_xor); |
AlvaAcosta | 0:7cc43619dcac | 194 | break; |
AlvaAcosta | 0:7cc43619dcac | 195 | |
AlvaAcosta | 0:7cc43619dcac | 196 | case RESP_A: |
AlvaAcosta | 0:7cc43619dcac | 197 | printf(" @ 4 %d %d #\n", a, a_xor); |
AlvaAcosta | 0:7cc43619dcac | 198 | break; |
AlvaAcosta | 0:7cc43619dcac | 199 | |
AlvaAcosta | 0:7cc43619dcac | 200 | case RESP_D: |
AlvaAcosta | 0:7cc43619dcac | 201 | printf(" @ 5 %d %d #\n", p, 5 ^ p); |
AlvaAcosta | 0:7cc43619dcac | 202 | break; |
AlvaAcosta | 0:7cc43619dcac | 203 | } |
AlvaAcosta | 0:7cc43619dcac | 204 | |
AlvaAcosta | 0:7cc43619dcac | 205 | } |
AlvaAcosta | 0:7cc43619dcac | 206 | |
AlvaAcosta | 0:7cc43619dcac | 207 | void Led_RGB(){ |
AlvaAcosta | 0:7cc43619dcac | 208 | |
AlvaAcosta | 0:7cc43619dcac | 209 | ADC(); |
AlvaAcosta | 0:7cc43619dcac | 210 | |
AlvaAcosta | 0:7cc43619dcac | 211 | if(voltaje <= 1.5) Estado_Color = ROJO; |
AlvaAcosta | 0:7cc43619dcac | 212 | if(voltaje > 1.5 && voltaje <= 2.5 ) Estado_Color = VERDE; |
AlvaAcosta | 0:7cc43619dcac | 213 | if(voltaje > 2.5) Estado_Color = AZUL; |
AlvaAcosta | 0:7cc43619dcac | 214 | |
AlvaAcosta | 0:7cc43619dcac | 215 | switch(Estado_Color){ |
AlvaAcosta | 0:7cc43619dcac | 216 | |
AlvaAcosta | 0:7cc43619dcac | 217 | case ROJO: |
AlvaAcosta | 0:7cc43619dcac | 218 | Led_R = 0; |
AlvaAcosta | 0:7cc43619dcac | 219 | Led_V = 1; |
AlvaAcosta | 0:7cc43619dcac | 220 | Led_A = 1; |
AlvaAcosta | 0:7cc43619dcac | 221 | break; |
AlvaAcosta | 0:7cc43619dcac | 222 | |
AlvaAcosta | 0:7cc43619dcac | 223 | case VERDE: |
AlvaAcosta | 0:7cc43619dcac | 224 | Led_R = 1; |
AlvaAcosta | 0:7cc43619dcac | 225 | Led_V = 0; |
AlvaAcosta | 0:7cc43619dcac | 226 | Led_A = 1; |
AlvaAcosta | 0:7cc43619dcac | 227 | |
AlvaAcosta | 0:7cc43619dcac | 228 | break; |
AlvaAcosta | 0:7cc43619dcac | 229 | |
AlvaAcosta | 0:7cc43619dcac | 230 | case AZUL: |
AlvaAcosta | 0:7cc43619dcac | 231 | Led_R = 1; |
AlvaAcosta | 0:7cc43619dcac | 232 | Led_V = 1; |
AlvaAcosta | 0:7cc43619dcac | 233 | Led_A = 0; |
AlvaAcosta | 0:7cc43619dcac | 234 | |
AlvaAcosta | 0:7cc43619dcac | 235 | break; |
AlvaAcosta | 0:7cc43619dcac | 236 | |
AlvaAcosta | 0:7cc43619dcac | 237 | } |
AlvaAcosta | 0:7cc43619dcac | 238 | |
AlvaAcosta | 0:7cc43619dcac | 239 | } |
AlvaAcosta | 0:7cc43619dcac | 240 | |
AlvaAcosta | 0:7cc43619dcac | 241 | void Led_Habilitado(){ |
AlvaAcosta | 0:7cc43619dcac | 242 | |
AlvaAcosta | 0:7cc43619dcac | 243 | switch(Estado_Led){ |
AlvaAcosta | 0:7cc43619dcac | 244 | |
AlvaAcosta | 0:7cc43619dcac | 245 | case APAGADO: |
AlvaAcosta | 0:7cc43619dcac | 246 | Led_Ext = 0; |
AlvaAcosta | 0:7cc43619dcac | 247 | if(Led_tout == 0){ |
AlvaAcosta | 0:7cc43619dcac | 248 | Estado_Led = ENCENDIDO; |
AlvaAcosta | 0:7cc43619dcac | 249 | Led_tout = 20; |
AlvaAcosta | 0:7cc43619dcac | 250 | } |
AlvaAcosta | 0:7cc43619dcac | 251 | |
AlvaAcosta | 0:7cc43619dcac | 252 | break; |
AlvaAcosta | 0:7cc43619dcac | 253 | |
AlvaAcosta | 0:7cc43619dcac | 254 | case ENCENDIDO: |
AlvaAcosta | 0:7cc43619dcac | 255 | Led_Ext = 1; |
AlvaAcosta | 0:7cc43619dcac | 256 | if(Led_tout == 0){ |
AlvaAcosta | 0:7cc43619dcac | 257 | i++; |
AlvaAcosta | 0:7cc43619dcac | 258 | Estado_Led = APAGADO; |
AlvaAcosta | 0:7cc43619dcac | 259 | if(i==3){ |
AlvaAcosta | 0:7cc43619dcac | 260 | Led_tout = 150; |
AlvaAcosta | 0:7cc43619dcac | 261 | i=0; |
AlvaAcosta | 0:7cc43619dcac | 262 | } |
AlvaAcosta | 0:7cc43619dcac | 263 | else Led_tout = 20; |
AlvaAcosta | 0:7cc43619dcac | 264 | } |
AlvaAcosta | 0:7cc43619dcac | 265 | |
AlvaAcosta | 0:7cc43619dcac | 266 | break; |
AlvaAcosta | 0:7cc43619dcac | 267 | } |
AlvaAcosta | 0:7cc43619dcac | 268 | |
AlvaAcosta | 0:7cc43619dcac | 269 | } |
AlvaAcosta | 0:7cc43619dcac | 270 | |
AlvaAcosta | 0:7cc43619dcac | 271 | void Led_Deshabilitado(){ |
AlvaAcosta | 0:7cc43619dcac | 272 | |
AlvaAcosta | 0:7cc43619dcac | 273 | switch(Estado_Led){ |
AlvaAcosta | 0:7cc43619dcac | 274 | |
AlvaAcosta | 0:7cc43619dcac | 275 | case APAGADO: |
AlvaAcosta | 0:7cc43619dcac | 276 | Led_Ext = 0; |
AlvaAcosta | 0:7cc43619dcac | 277 | if(Led_tout == 0){ |
AlvaAcosta | 0:7cc43619dcac | 278 | Estado_Led = ENCENDIDO; |
AlvaAcosta | 0:7cc43619dcac | 279 | Led_tout = 50; |
AlvaAcosta | 0:7cc43619dcac | 280 | } |
AlvaAcosta | 0:7cc43619dcac | 281 | |
AlvaAcosta | 0:7cc43619dcac | 282 | break; |
AlvaAcosta | 0:7cc43619dcac | 283 | |
AlvaAcosta | 0:7cc43619dcac | 284 | case ENCENDIDO: |
AlvaAcosta | 0:7cc43619dcac | 285 | Led_Ext = 1; |
AlvaAcosta | 0:7cc43619dcac | 286 | if(Led_tout == 0){ |
AlvaAcosta | 0:7cc43619dcac | 287 | Estado_Led = APAGADO; |
AlvaAcosta | 0:7cc43619dcac | 288 | Led_tout = 100; |
AlvaAcosta | 0:7cc43619dcac | 289 | } |
AlvaAcosta | 0:7cc43619dcac | 290 | |
AlvaAcosta | 0:7cc43619dcac | 291 | break; |
AlvaAcosta | 0:7cc43619dcac | 292 | } |
AlvaAcosta | 0:7cc43619dcac | 293 | |
AlvaAcosta | 0:7cc43619dcac | 294 | } |
AlvaAcosta | 0:7cc43619dcac | 295 | |
AlvaAcosta | 0:7cc43619dcac | 296 | |
AlvaAcosta | 0:7cc43619dcac | 297 | |
AlvaAcosta | 0:7cc43619dcac | 298 | int Pulsador(){ |
AlvaAcosta | 0:7cc43619dcac | 299 | if(Puls == 0)p = 0; |
AlvaAcosta | 0:7cc43619dcac | 300 | if(Puls == 1)p = 1; |
AlvaAcosta | 0:7cc43619dcac | 301 | return p; |
AlvaAcosta | 0:7cc43619dcac | 302 | } |
AlvaAcosta | 0:7cc43619dcac | 303 | |
AlvaAcosta | 0:7cc43619dcac | 304 | void ADC(){ |
AlvaAcosta | 0:7cc43619dcac | 305 | valor_ADC = Pote.read_u16(); |
AlvaAcosta | 0:7cc43619dcac | 306 | voltaje = valor_ADC * 3.3 / 65535; |
AlvaAcosta | 0:7cc43619dcac | 307 | a = valor_ADC * 100 / 65535; |
AlvaAcosta | 0:7cc43619dcac | 308 | |
AlvaAcosta | 0:7cc43619dcac | 309 | valor_ADC_xor = 4 ^ valor_ADC; |
AlvaAcosta | 0:7cc43619dcac | 310 | a_xor = 4 ^ a; |
AlvaAcosta | 0:7cc43619dcac | 311 | } |
AlvaAcosta | 0:7cc43619dcac | 312 | |
AlvaAcosta | 0:7cc43619dcac | 313 | void Acelerometro(){ |
AlvaAcosta | 0:7cc43619dcac | 314 | x = abs(acc.getAccX())*100; |
AlvaAcosta | 0:7cc43619dcac | 315 | y = abs(acc.getAccY())*100; |
AlvaAcosta | 0:7cc43619dcac | 316 | z = abs(acc.getAccZ())*100; |
AlvaAcosta | 0:7cc43619dcac | 317 | |
AlvaAcosta | 0:7cc43619dcac | 318 | X_xor = 1 ^ x; |
AlvaAcosta | 0:7cc43619dcac | 319 | Y_xor = 2 ^ y; |
AlvaAcosta | 0:7cc43619dcac | 320 | Z_xor = 3 ^ z; |
AlvaAcosta | 0:7cc43619dcac | 321 | |
AlvaAcosta | 0:7cc43619dcac | 322 | } |
AlvaAcosta | 0:7cc43619dcac | 323 | |
AlvaAcosta | 0:7cc43619dcac | 324 | void Contador(){ |
AlvaAcosta | 0:7cc43619dcac | 325 | if(Led_tout != 0){ |
AlvaAcosta | 0:7cc43619dcac | 326 | Led_tout--; |
AlvaAcosta | 0:7cc43619dcac | 327 | } |
AlvaAcosta | 0:7cc43619dcac | 328 | } |
AlvaAcosta | 0:7cc43619dcac | 329 | |
AlvaAcosta | 0:7cc43619dcac | 330 | void init_mcu(){ |
AlvaAcosta | 0:7cc43619dcac | 331 | timer.attach(&Contador, 0.01); |
AlvaAcosta | 0:7cc43619dcac | 332 | } |