BMA180 adr. 0x41 from BlazeX

Dependents:   Sensor_test

Revision:
0:6904212fb1d1
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/BMA180.h	Wed May 30 10:43:42 2012 +0000
@@ -0,0 +1,42 @@
+#pragma once
+
+//I2C Adresse, entweder 0x40 oder 0x41, abhaengig von Pin VDDIO
+#define BMA180_ADRESS 0x41
+
+//Beschleunigung in Meter pro Quadratsekunde umrechnen
+const float fConvMPSS= 3.4346447e-3;
+
+class BMA180
+{
+private:
+    I2C & I2CBus;
+    Timer & GlobalTime;
+    
+    //Offset
+    float Offset[3];
+    
+public:
+    //Beschleunigung auf allen drei Achsen
+    short RawAcc[3];        //Rohdaten
+    float Acc[3];           //kalibrierte Rohdaten in m/s^2
+    
+    
+    //Initialisieren
+    BMA180(I2C & I2CBus_, Timer & GlobalTime_);
+    void Init();
+
+private:    
+    //Rohdaten lesen
+    void ReadRawData();
+    
+public:
+    //Update-Methode
+    //- Holt aktuelle Daten vom Sensor ab
+    //- Rechnet das Offset hinzu
+    //- Rechnet in andere Einheiten um
+    void Update();
+    
+    //Kalibrieren
+    //- pRaw1g: Array short[3] ideale Rohdaten für 1g = ca. {0, 0, -2870}
+    void Calibrate(int ms, const short * pRaw1g);
+};