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
Diff: main.cpp
- Revision:
- 11:27f2850b9388
- Parent:
- 9:3708b94b2312
- Child:
- 12:172acb80fcab
diff -r 8c5a246b9045 -r 27f2850b9388 main.cpp
--- a/main.cpp Tue Mar 08 16:38:49 2016 +0000
+++ b/main.cpp Thu Mar 10 09:56:59 2016 +0000
@@ -5,6 +5,7 @@
#include "mbed.h"
#include "Acelerometro.h"
#include "AccelService.h"
+#include "circular_buffer.h"
Serial pc(p9, p11);
@@ -12,13 +13,42 @@
Acelerometro acc;
AccelService acc_service;
+ circular_buffer<Vector> buffer(10);
while(1) {
pc.printf("-----------------------------------------\n");
- Vector v = acc.leer();
- acc_service.updateAccelState(v);
- pc.printf(" X: %i\n Y: %i\n Z: %i\n", v.x, v.y, v.z);
+
+ // Hacer un buffer circular para ir leyendo lo que tienes
+ // Problema?: ahora los datos cambian un poco lento, por ejemplo para
+ // pasar de -1g a 1g tarda un par de segundos aunque el cambio haya sido rapido
+ buffer.push_back(acc.leer());
+
+ // TODO Hacer esto en un hilo
+ int x = 0, y = 0, z = 0;
+ for (int i = 0; i < buffer.get_size(); i++){
+
+ Vector v = buffer[i];
+
+ x += v.x;
+ y += v.y;
+ z += v.z;
+
+ }
+
+ Vector media;
+
+ media.x = x / buffer.get_size();
+ media.y = y / buffer.get_size();
+ media.z = z / buffer.get_size();
+
+ /* if (media.x <= 1000 && media.x >= -1000) media.x = 0;
+ if (media.y <= 1000 && media.y >= -1000) media.y = 0;
+ if (media.z <= 1000 && media.z >= -1000) media.z = 0;*/
+
+ acc_service.updateAccelState(media);
+
+ pc.printf(" X: %i\n Y: %i\n Z: %i\n", media.x, media.y, media.z);
}
}
\ No newline at end of file
