Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: BLE_API mbed nRF51822 circular_buffer
main.cpp@11:27f2850b9388, 2016-03-10 (annotated)
- Committer:
- agufal
- Date:
- Thu Mar 10 09:56:59 2016 +0000
- Revision:
- 11:27f2850b9388
- Parent:
- 9:3708b94b2312
- Child:
- 12:172acb80fcab
A?adido buffer circular para hacer la media. Ahora los valores cambian un tanto despacio (Ver comentario en el main)
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| agufal | 6:fa74a43cae81 | 1 | /* |
| agufal | 6:fa74a43cae81 | 2 | * Esto es para la placa Xtrinsic-Sense Board de element14, mas |
| agufal | 6:fa74a43cae81 | 3 | * concretamente para el acelerometro MMA8491Q |
| agufal | 6:fa74a43cae81 | 4 | */ |
| agufal | 0:c123bc196680 | 5 | #include "mbed.h" |
| agufal | 8:e7cafda76315 | 6 | #include "Acelerometro.h" |
| agufal | 9:3708b94b2312 | 7 | #include "AccelService.h" |
| agufal | 11:27f2850b9388 | 8 | #include "circular_buffer.h" |
| agufal | 0:c123bc196680 | 9 | |
| agufal | 0:c123bc196680 | 10 | Serial pc(p9, p11); |
| agufal | 4:a743917cd04c | 11 | |
| agufal | 9:3708b94b2312 | 12 | int main() { |
| agufal | 8:e7cafda76315 | 13 | |
| agufal | 9:3708b94b2312 | 14 | Acelerometro acc; |
| agufal | 9:3708b94b2312 | 15 | AccelService acc_service; |
| agufal | 11:27f2850b9388 | 16 | circular_buffer<Vector> buffer(10); |
| Alexisfdi | 3:80ceedd5ffac | 17 | |
| agufal | 9:3708b94b2312 | 18 | while(1) { |
| Alexisfdi | 3:80ceedd5ffac | 19 | |
| agufal | 4:a743917cd04c | 20 | pc.printf("-----------------------------------------\n"); |
| agufal | 11:27f2850b9388 | 21 | |
| agufal | 11:27f2850b9388 | 22 | // Hacer un buffer circular para ir leyendo lo que tienes |
| agufal | 11:27f2850b9388 | 23 | // Problema?: ahora los datos cambian un poco lento, por ejemplo para |
| agufal | 11:27f2850b9388 | 24 | // pasar de -1g a 1g tarda un par de segundos aunque el cambio haya sido rapido |
| agufal | 11:27f2850b9388 | 25 | buffer.push_back(acc.leer()); |
| agufal | 11:27f2850b9388 | 26 | |
| agufal | 11:27f2850b9388 | 27 | // TODO Hacer esto en un hilo |
| agufal | 11:27f2850b9388 | 28 | int x = 0, y = 0, z = 0; |
| agufal | 11:27f2850b9388 | 29 | for (int i = 0; i < buffer.get_size(); i++){ |
| agufal | 11:27f2850b9388 | 30 | |
| agufal | 11:27f2850b9388 | 31 | Vector v = buffer[i]; |
| agufal | 11:27f2850b9388 | 32 | |
| agufal | 11:27f2850b9388 | 33 | x += v.x; |
| agufal | 11:27f2850b9388 | 34 | y += v.y; |
| agufal | 11:27f2850b9388 | 35 | z += v.z; |
| agufal | 11:27f2850b9388 | 36 | |
| agufal | 11:27f2850b9388 | 37 | } |
| agufal | 11:27f2850b9388 | 38 | |
| agufal | 11:27f2850b9388 | 39 | Vector media; |
| agufal | 11:27f2850b9388 | 40 | |
| agufal | 11:27f2850b9388 | 41 | media.x = x / buffer.get_size(); |
| agufal | 11:27f2850b9388 | 42 | media.y = y / buffer.get_size(); |
| agufal | 11:27f2850b9388 | 43 | media.z = z / buffer.get_size(); |
| agufal | 11:27f2850b9388 | 44 | |
| agufal | 11:27f2850b9388 | 45 | /* if (media.x <= 1000 && media.x >= -1000) media.x = 0; |
| agufal | 11:27f2850b9388 | 46 | if (media.y <= 1000 && media.y >= -1000) media.y = 0; |
| agufal | 11:27f2850b9388 | 47 | if (media.z <= 1000 && media.z >= -1000) media.z = 0;*/ |
| agufal | 11:27f2850b9388 | 48 | |
| agufal | 11:27f2850b9388 | 49 | acc_service.updateAccelState(media); |
| agufal | 11:27f2850b9388 | 50 | |
| agufal | 11:27f2850b9388 | 51 | pc.printf(" X: %i\n Y: %i\n Z: %i\n", media.x, media.y, media.z); |
| agufal | 5:d5dba5370918 | 52 | |
| Alexisfdi | 3:80ceedd5ffac | 53 | } |
| agufal | 0:c123bc196680 | 54 | } |
