Projet S5 Lecture de l'accelerometre avec interruption

Dependencies:   mbed PowerControl

Fork of Projet_S5 by Jonathan Tousignant

Files at this revision

API Documentation at this revision

Comitter:
joGenie
Date:
Thu Apr 03 15:04:49 2014 +0000
Parent:
5:6313ddd0dfdd
Child:
7:89be89aeed5a
Commit message:
signed char

Changed in this revision

accelerometer.cpp Show annotated file Show diff for this revision Revisions of this file
accelerometer.h Show annotated file Show diff for this revision Revisions of this file
analyzer.cpp Show annotated file Show diff for this revision Revisions of this file
analyzer.h Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/accelerometer.cpp	Thu Apr 03 14:28:33 2014 +0000
+++ b/accelerometer.cpp	Thu Apr 03 15:04:49 2014 +0000
@@ -68,9 +68,9 @@
     return true;      
 }
 
-char* Accelerometer::getAccelValue()
+signed char* Accelerometer::getAccelValue()
 {
-    char* values = new char[3];
+    signed char* values = new signed char[3];
     
     values[0] = i2c_read_reg(OUT_X_MSB);
     values[1] = i2c_read_reg(OUT_Y_MSB);
@@ -90,7 +90,7 @@
     delete acc;
 }
 
-extern "C" char* Accelerometer_C_getAccelValue(void *accelerometer)
+extern "C" signed char* Accelerometer_C_getAccelValue(void *accelerometer)
 {
     Accelerometer *acc = (Accelerometer*)accelerometer;
     return acc->getAccelValue();
--- a/accelerometer.h	Thu Apr 03 14:28:33 2014 +0000
+++ b/accelerometer.h	Thu Apr 03 15:04:49 2014 +0000
@@ -28,7 +28,7 @@
     Accelerometer();
     ~Accelerometer();
     
-    char* getAccelValue();
+    signed char* getAccelValue();
     
 private:
     void writeToRegister(int address, int startingRegister, int data2Write);
@@ -46,7 +46,7 @@
 
 extern void *Accelerometer_C_new();
 extern void  Accelerometer_C_delete(void *accelerometer);
-extern char* Accelerometer_C_getAccelValue(void *accelerometer);
+extern signed char* Accelerometer_C_getAccelValue(void *accelerometer);
 
 #ifdef __cplusplus
 }
--- a/analyzer.cpp	Thu Apr 03 14:28:33 2014 +0000
+++ b/analyzer.cpp	Thu Apr 03 15:04:49 2014 +0000
@@ -6,7 +6,7 @@
 Analyzer::~Analyzer()
 {}
 
-void Analyzer::setMinMax(char* values)
+void Analyzer::setMinMax(signed char* values)
 {
     x.setMinMax(values[0]);
     y.setMinMax(values[1]);
@@ -29,7 +29,7 @@
     delete an;    
 }
 
-extern "C" void Analyzer_C_setMinMax(char* values, void *analyzer)
+extern "C" void Analyzer_C_setMinMax(signed char* values, void *analyzer)
 {
     Analyzer *an = (Analyzer*)analyzer;
     an->setMinMax(values);    
--- a/analyzer.h	Thu Apr 03 14:28:33 2014 +0000
+++ b/analyzer.h	Thu Apr 03 15:04:49 2014 +0000
@@ -10,18 +10,18 @@
     Analyzer();
     ~Analyzer();
     
-    void setMinMax(char* values);
+    void setMinMax(signed char* values);
     void checkMouvement();
     
 private:
     struct Data
     {
-        char min;
-        char max;
+        signed char min;
+        signed char max;
         
-        Data(): min(CHAR_MAX), max(0){}
+        Data(): min(CHAR_MAX/2), max(0){}
         
-        void setMinMax(char value)
+        void setMinMax(signed char value)
         {
             if (value < min)
                 min = value;
@@ -41,7 +41,7 @@
 
 extern void *Analyzer_C_new();
 extern void Analyzer_C_delete(void *analyzer);
-extern void Analyzer_C_setMinMax(char* values, void *analyzer);
+extern void Analyzer_C_setMinMax(signed char* values, void *analyzer);
 extern void Analyzer_C_checkMouvement(void *analyzer);
 
 #ifdef __cplusplus
--- a/main.cpp	Thu Apr 03 14:28:33 2014 +0000
+++ b/main.cpp	Thu Apr 03 15:04:49 2014 +0000
@@ -64,13 +64,11 @@
     if(button)
     {
         led4 = !led4;
-        char* values;
+        signed char* values;
     
         values = Accelerometer_C_getAccelValue(accelerometer);
-        
-        Analyzer_C_setMinMax(values, analyzer);
     
-        pc.printf("\n\r x: %d, y: %d, z: %d; ", values[0],values[1],values[2]);
+        pc.printf("\n\r x: %i, y: %i, z: %i; ", values[0],values[1],values[2]);
         
         // Analyze data
         Analyzer_C_setMinMax(values, analyzer);