44 lines
872 B
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;
|
|
}
|
|
|