Files
Pi2ezoPlayer/accelerometer.c

44 lines
872 B
C

#include "accelerometer.h"
#include <libgy521.h>
#include <math.h> //for fabs
float acceldata = 0;
int kill = 0;
void setupAccelerometer(void) {
setupgy521();
}
float getaccelerometerdata(void) {
float xyz[] = {getAccelerometerAverage('x', 1, 10), getAccelerometerAverage('y', 1, 10), getAccelerometerAverage('z', 1, 10)};
float temp;
int i, z;
for (i = 0; i < 3; i++) {
for (z = 0; z < 3 - i; z++) {
if (xyz[z] < xyz[z + 1]) {
temp = xyz[z];
xyz[z] = xyz[z + 1];
xyz[z + 1] = temp;
}
}
}
return fabs(xyz[0]); //Absolutwert fuer float
}
int updateAccelerometerValue(void) {
acceldata = getaccelerometerdata();
return kill;
}
void killAccelerometerMeasure(void) {
kill = 1;
}
float getAccelData(void) {
return acceldata;
}